2012-04-02 47 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