2015-04-04 33 views
1

我正在研究一個小框架,可以使固定設計變得流暢。 所以儘管分辨率的內容適合窗口調整。確定元素屬性是否使用%百分比單位

我已經很好的成功轉換計算單位px,em &點。但在大多數情況下,getComputedStyle返回符合百分比的元素的px值。

如何獲得「有效」通過CSS定義的百分比單位? (提前思考我需要區分字體%和框模型%)。

(請沒有lodash或jQuery的答案,必須是純JS)

回答

0

如果元素(或其父母之一)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>

+0

不知道這將是瀏覽器之間是一致的,我支持IE6 +,它是怎樣的一個框架,我不想勸PP l使用%在每個元素上將display設置爲none。 – Undefined 2015-04-04 13:00:10

+0

@未定好的。我認爲這可能有幫助。順便說一句,人們不必設置「顯示:無;」。我做了一個改變。 – tkay 2015-04-04 13:06:21

+0

感謝您的嘗試,也許我應該更具體。每次窗口大小調整時,腳本基本上都會改變字體大小,行高,邊距和可能的填充。我認爲改變顯示值可以說200 +節點有點太多了。邊距值被分成數組中的數組,我也使用getComputedStyle,所以我需要高效。 – Undefined 2015-04-04 13:20:44

相關問題