2012-05-31 27 views
-2

更新:这里是小提琴:http://jsfiddle.net/ZqXZP/2/。如果你在Chrome浏览器上查看它,然后在Firefox上查看,你会看到问题。在Firefox和IE中获取CSS属性的麻烦

我想从元素中获得完整的填充字符串。我原来的代码是这样读的:

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; 

但是,即使这会返回一个空字符串。有其他人遇到这个问题吗?有什么建议?

+0

您能否展示一个展示行为(包括HTML)的完整示例,最好使用[jsfiddle](http://jsfiddle.net)? '.css()'当然可以(通常)在Firefox和IE中工作。 – JJJ

+0

@ Juhana--这里是小提琴。如果你在两个浏览器中查看它,你会发现填充值在Chrome中返回,但不是IE或Firefox。 http://jsfiddle.net/ZqXZP/2/ – dopatraman

+0

请在评论之前发表评论。这似乎是一个合法的问题。 – dopatraman

回答

2

.css() documentation

速记CSS特性(例如余量,背景,边界)不被支持。例如,如果要检索渲染边距,请使用:$(elem).css('marginTop')和$(elem).css('marginRight')等等。

+0

@ Juhana - 任何想法,为什么这在铬然后工作? – dopatraman

+0

这是“不支持”,这意味着你不能相信返回值是什么。显然Chrome存储速记值,但FF和IE不存在。 – JJJ

+0

这不是一个存储问题。这是'getComputedStyle'返回的问题。根据你阅读它的方式,getComputedStyle'的规范要求返回空字符串以表示短手。 –