【问题标题】:trouble getting css properties in firefox and IE在 Firefox 和 IE 中获取 css 属性时遇到问题
【发布时间】:2012-06-06 00:14:26
【问题描述】:

更新:这里是小提琴:http://jsfiddle.net/ZqXZP/2/。如果您在 Chrome 上查看它,然后在 firefox 上查看,您会发现问题。

我正在尝试从元素中获取完整的填充字符串。我的原始代码是这样的:

var totalPaddingString = $(element).css("padding"); //Chrome returns "10px 0px 9px 10px" etc.

//do stuff with `totalPaddingString` here

这在 Chrome 中运行良好。但是,当我尝试在 Firefox 和 IE 中使用 .css() 方法时,会返回一个空字符串。一开始我以为是这两个浏览器使用 jQuery 的问题,所以我切换到原生 Javascript 属性:

var totalPaddingString = element.style.padding;

但即使这样也返回一个空字符串。有没有其他人遇到过这个问题?有什么建议吗?

【问题讨论】:

  • 能否请您展示一个展示行为(包括 HTML)的完整示例,最好使用jsfiddle$.css() 当然(通常)确实可以在 Firefox 和 IE 中使用。
  • @Juhana——这是小提琴。如果您在两个浏览器中查看它,您会看到在 Chrome 中返回填充值,而不是在 IE 或 Firefox 中返回。 jsfiddle.net/ZqXZP/2
  • 请在投反对票之前发表评论。这似乎是一个合法的问题。
  • 这不是css() 问题。 Working fine with another property 因为像 padding 这样的速记 CSS 属性是 not supported

标签: javascript css internet-explorer firefox google-chrome


【解决方案1】:

来自.css() documentation

不支持简写 CSS 属性(例如边距、背景、边框)。例如,如果要检索渲染的边距,请使用:$(elem).css('marginTop') 和 $(elem).css('marginRight'),等等。

【讨论】:

  • 它是“不支持”,这意味着你不能相信返回值是什么。显然 Chrome 会存储速记值,但 FF 和 IE 不会。
  • 这不是存储的问题。这是getComputedStyle 返回的问题。根据您的阅读方式,getComputedStyle 的规范要求返回空字符串作为速记。
猜你喜欢
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多