好了,所以當我得到一個已經使用存儲爲%的CSS屬性的JQuery的.css()則返回其像素值。實際上,這對我的目的非常有用,我可以使用它......這是一個預期的結果,我現在和將來都會在所有現代瀏覽器中始終如一地看到它,但是?的JQuery的.css()返回像素,而不是百分比
我似乎無法在這裏找到很多信息。謝謝!
好了,所以當我得到一個已經使用存儲爲%的CSS屬性的JQuery的.css()則返回其像素值。實際上,這對我的目的非常有用,我可以使用它......這是一個預期的結果,我現在和將來都會在所有現代瀏覽器中始終如一地看到它,但是?的JQuery的.css()返回像素,而不是百分比
我似乎無法在這裏找到很多信息。謝謝!
從jQuery的文檔
名爲.css()方法是一個方便的方式來獲得第一個匹配元素的樣式屬性,尤其是在不同的方式瀏覽器來訪問大多數這些屬性(在光的getComputedStyle ()方法在基於標準的瀏覽器相對於currentStyle並在Internet Explorer runtimeStyle性質)和不同的術語瀏覽器使用某些屬性。
是的,它是一個期望的結果
,如果你想找到實際的樣式值,你可以做這樣的事情,
var topValue = $("#mydiv")[0].style.top
是的,你可以看到在所有瀏覽器這種行爲既現在和未來。因爲這是瀏覽器呈現css property
的方式。腳本語言在從瀏覽器解析後,將從DOM
獲得這些詳細信息。所以這是自然的行爲,這不會改變。
此外,在渲染過程中,Percentages
將根據element's parent
轉換爲pixels
。這樣,它將不會以百分比的形式顯示CSS屬性,同時檢索它。如果您確實需要,您必須手動計算它。
這是由蓬勃發展的CSSOM specification覆蓋。一般來說,是的,你可以依靠像素值提供的,display
屬性未設置爲none
。 Section 9 of the above有詳細說明;對於最特性在你期望一個數字(width
和這樣的),它說:
如果屬性應用於元素或僞元素和「顯示器」的解析值屬性不'none',解析的值是使用的值。否則,解析的值就是計算的值。
...其中「分辨率值」表示(對於這些屬性)多個像素而不是相對量(百分比和相似),其將是「計算的值」(「計算」如「考慮所有的風格規則「)。
支持這一存在的情況下(新)規定的行爲,當非像素值已經在各種情況下被退回,錯誤已得到報告並接受(在WebKit,在jQuery,在YUI)。
這似乎並不回答的首要問題:*?「...是預期的結果,我會一直在所有現代瀏覽器無論是現在還是未來看,雖然」 *(不是我的DV) –
T.J.是對的...我明白髮生了什麼,當然可以很容易地將像素轉換爲百分比 - 因此,我發現這種數據返回方法更加有用和多功能。我只想知道我能否指望它的一致性。 – user3011922
@ user3011922是的,這是一致的。我只是在我的答案中添加了更多細節。 –