1
我正在研究一個小框架,可以使固定設計變得流暢。 所以儘管分辨率的內容適合窗口調整。確定元素屬性是否使用%百分比單位
我已經很好的成功轉換計算單位px,em &點。但在大多數情況下,getComputedStyle返回符合百分比的元素的px值。
如何獲得「有效」通過CSS定義的百分比單位? (提前思考我需要區分字體%和框模型%)。
(請沒有lodash或jQuery的答案,必須是純JS)
我正在研究一個小框架,可以使固定設計變得流暢。 所以儘管分辨率的內容適合窗口調整。確定元素屬性是否使用%百分比單位
我已經很好的成功轉換計算單位px,em &點。但在大多數情況下,getComputedStyle返回符合百分比的元素的px值。
如何獲得「有效」通過CSS定義的百分比單位? (提前思考我需要區分字體%和框模型%)。
(請沒有lodash或jQuery的答案,必須是純JS)
如果元素(或其父母之一)display
設置爲none
您可以使用JavaScript(如果指定在%獲取%的價值。 )fiddle
function getStyle(el, property) {
var a = document.getElementById(el);
a.style.display = "none";
if (a.currentStyle)
var b = a.currentStyle[property];
else if (window.getComputedStyle)
var b = document.defaultView.getComputedStyle(a, null)
.getPropertyValue(property);
a.style.display = "block";
return b;
}
console.log(getStyle('a', 'width'));
#a {
width: 50%;
height: 200px;
}
<div id="a">jdghjfgdshf</div>
不知道這將是瀏覽器之間是一致的,我支持IE6 +,它是怎樣的一個框架,我不想勸PP l使用%在每個元素上將display設置爲none。 – Undefined 2015-04-04 13:00:10
@未定好的。我認爲這可能有幫助。順便說一句,人們不必設置「顯示:無;」。我做了一個改變。 – tkay 2015-04-04 13:06:21
感謝您的嘗試,也許我應該更具體。每次窗口大小調整時,腳本基本上都會改變字體大小,行高,邊距和可能的填充。我認爲改變顯示值可以說200 +節點有點太多了。邊距值被分成數組中的數組,我也使用getComputedStyle,所以我需要高效。 – Undefined 2015-04-04 13:20:44