【问题标题】:In IE7/8, jQuery tells me cellpadding=0 cells have padding of 1px在 IE7/8 中,jQuery 告诉我 cellpadding=0 单元格的填充为 1px
【发布时间】:2012-09-07 02:28:12
【问题描述】:

这是一个奇怪的问题 - 在下面的 jsFiddle 中,当使用 IE7 或 IE8 时,jQuery 返回 0px 作为单元格的填充,这是正确的:

http://jsfiddle.net/ZmfHE/

但是,当我在 IE7 或 IE8(下面的代码)中的简单 HTML 页面中进行本地测试时,jQuery 告诉我填充是 1px。谁能明白为什么会这样?代码与 jsFiddle 中的相同,除非我遗漏了什么?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <script src="jquery-1.8.1.min.js" type="text/javascript"></script>
    <script>

      $(document).ready(function() {
        alert($("td").css("padding-left"));
      });

    </script>
  </head>
  <body>

    <table cellspacing="0" cellpadding="0" border="0" width="400">
      <tr><td>some text</td></tr>
    </table>

  </body>
</html>

【问题讨论】:

  • 您的真实页面中真的有一个表格单元格吗?
  • 有趣的是,只有当浏览器和页面处于 IE 8 模式时 - 更改 either(在 IE 8 中)会导致本地页面正确警告 0px。
  • 也许你的 IIS 正在添加一个像 X-UA-Compatible=EmulateIE7 这样的标题
  • 这发生在两台不同的机器上,一台装有 IE7,另一台装有 IE8。它们的行为相同 - 都使用 jsFiddle 显示 0px 并在本地页面上显示 1px(不使用 IIS 只是将我的测试 html 文件拖到浏览器中 - 但它也发生在我的 IIS 项目中)。 meder:这是一个演示问题的简化页面。 :)
  • @SeanVieira,我该如何更改模式?你能告诉我使它正常运行的代码吗?但是 IE7(如果也有 IE6,也可能是 IE6)呢?我仍然很困惑为什么它可以在 jsFiddle 中工作但不是在这里。

标签: jquery internet-explorer cellpadding


【解决方案1】:

fiddle 正在将 normalize.css 应用于页面,这就是为什么它会返回 0。如果您使用 IE 开发工具栏禁用 fiddle 上的 normalize 样式,它也会返回 1px。查看 IE 8 开发人员栏,您可以看到它认为当在 fiddle 中取消 normalize 或在本地运行它时,它应该有 1px 填充:

因此,您的环境中的解决方案是使用规范化 CSS 来应用您想要的格式。

【讨论】:

  • 啊..这很有趣。是的,它在 normalize.css 中将 TD(和一堆东西)设置为 padding:0。这将意味着调整我的 CSS 以适应,但这似乎是唯一的方法。看起来使用“规范化器”是很常见的做法 - 从来不知道。 :) 非常感谢!
猜你喜欢
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
  • 2014-08-11
  • 2011-05-04
  • 2021-10-08
  • 1970-01-01
  • 1970-01-01
  • 2020-06-23
相关资源
最近更新 更多