2012-05-31 42 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'的規範要求返回空字符串以表示短手。 –