我rewritting我Textarea Line Count plugin(< - 無恥的插頭),並有這樣的疑問:jQuery是否會返回除px之外的CSS度量值?
當我打電話$("#someElement").css("letter-spacing")
,我將永遠得到一個值em
S,或任何其他比px
?基於這個例子:http://jsfiddle.net/xhhr2/,至少在谷歌瀏覽器中,似乎jQuery或瀏覽器都在爲我轉換度量爲px
。我總能期待這種行爲嗎?
我rewritting我Textarea Line Count plugin(< - 無恥的插頭),並有這樣的疑問:jQuery是否會返回除px之外的CSS度量值?
當我打電話$("#someElement").css("letter-spacing")
,我將永遠得到一個值em
S,或任何其他比px
?基於這個例子:http://jsfiddle.net/xhhr2/,至少在谷歌瀏覽器中,似乎jQuery或瀏覽器都在爲我轉換度量爲px
。我總能期待這種行爲嗎?
根據Crescent Fresh's answer鏈接到Dean Edwards的黑客,jQuery經過很長的時間才能返回所有瀏覽器中的實際計算像素值,而不是最初在樣式表中定義的值,所以似乎是,你可以依靠它。
據我所知,瀏覽器必須將每個尺寸(無論是在em
,%
等)轉換爲像素。這就是DOM如何存儲它,因此jQuery將把這個值返回給你。
EDIT 根據此答案here,(由佩卡的回答中引用)僅IE支持currentStyle
,它給出了由CSS設置的大小(包括單元)。顯然,沒有其他瀏覽器支持這一點,相反他們都使用computed style
將所有內容都轉換爲像素。所以我說的是對的。 :P
你可以提供某種證據嗎? – 2011-04-21 16:37:41
有道理。如果jQuery(或者瀏覽器)在'%'中返回任何度量值,我會生氣。 – 2011-04-21 16:37:54
我現在找不到它,但我似乎記得遇到了一個SO問題,它提到實際的字符串來自包含原始單元('95%'或'1.2em')的CSS將與舊版本的jQuery一起返回(我不確定,但我會說<= 1.2),但現在不再有了。 – 2011-04-21 16:39:48
確實,看看我發現:http://struckthrough.krystophv.org/tag/curcss/。這種方法很久以前就被棄用了,但它確實用於返回'1em'而不是轉換它,例如。 – 2011-04-21 16:45:26
@簡單有趣的發現! – 2011-04-21 16:48:22
謝謝Pekka!這在下一個版本中將非常有用... – 2011-04-21 17:14:51