2012-04-02 45 views
9

使用JavaScript,我怎麼能得到實際值的CSS屬性是繼承如何獲得使用JavaScript的元素的實際繼承CSS?

例如,請考慮以下HTML:

<p><span style="font-size:24pt;">Test #1</span></p>​ 
<p style="font-size:24pt;">Test <span style="font-weight:bold;">#2</span></p>​ 

使用jQuery代碼$('p span').css('fontSize')將產生32px24pt因爲它使用getComputedStyle它返回使用值,而不是實際繼承值。但有時風格將直接針對我所針對的元素,有時它會被繼承。

Here is a test case。如何獲得使用JavaScript的元素的實際繼承的CSS?

+0

這裏的問題是值正在轉換爲像素。 '32px'是'24pt'。 http://reeddesign.co.uk/test/points-pixels.html檢查這個演示:http://jsfiddle.net/mvqPE/1/ – 2012-04-02 20:06:53

+0

@火箭:對。這就是*正是我正在試圖解決的問題:-p,這就是我的意思是「實際」與「已用」值 – Josh 2012-04-02 20:15:38

+1

很確定你無法獲得「實際」值(讀取'style'屬性)。 http://stackoverflow.com/a/1314845 – 2012-04-02 20:18:17

回答

2

@mikerobi的答案可以滿足您的測試用例,但更具體的說,瀏覽器暴露的唯一CSS屬性來自getComputedStyle,所以如果它錯了,那麼它的效果就差不多。有關更多詳細信息,請參閱另一個問題的this answer

+0

(似乎參考mikerobi是有點過時?) – Arjan 2012-05-15 21:20:30