2011-06-22 53 views
2

有沒有什麼辦法知道元素高度寬度在JavaScript/css中設置(不自動)? elm.style.height只會在元素屬性列表中定義高度時返回一個值:< div style ='height:200px'.... > </div >,否則它將始終返回一個空值字符串,即使您定義樣式標記或css文件中的高度:.myElmCss {height:200px}如何知道元素的高度或寬度是在javascript/css中設置的?

另一方面,使用window.getComputedStyle()或elm.currentStyle將始終返回一個值,即使在元素屬性列表中也沒有在CSS文件/樣式標記中未定義高度。

謝謝。

+0

對不起,我不太明白的回答,你能解釋清楚一點嗎? –

+0

好吧,假設這2個元素:1

inner content ...
和2
inner content ...
,以及css類:.myElm {height:200px;}。在這兩種情況下,您都無法判斷元素高度是否爲自動(如第二種情況)或第一種情況。你會怎麼做? – Yaco

回答

1

檢查這個帖子How do you read CSS rule values with JavaScript?

做你找什麼它似乎是遍歷樣式表找到聲明的屬性的問題。您可能還會與您在問題中提到的內聯樣式交叉引用。

@InsDel's post

function getStyle(className) { 
    var classes = document.styleSheets[0].rules || document.styleSheets[0].cssRules 
    for(var x=0;x<classes.length;x++) { 
     if(classes[x].selectorText==className) { 
       (classes[x].cssText) ? alert(classes[x].cssText) : alert(classes[x].style.cssText); 
     } 
    } 
} 
+0

謝謝@InsDel。我已經想過這樣的事情,我個人希望有一個函數或比重複遍歷所有文檔樣式列表更重要的東西。我想我會堅持這一點。再次感謝。 – Yaco

+0

嗨@InsDel,如果元素樣式是通過它的id而不是它的類來定義的,那麼這個工作是否會起作用,如:#myElm {height:200ppx}。 – Yaco

+0

抱歉@InsDel,我沒有投票給您答覆我沒有註冊。 – Yaco

相關問題