回答
var style = window.getComputedStyle(document.getElementById("Example"), null);
style.getPropertyValue("height");
上述版本將在現代瀏覽器。請檢查currentStyle
的IE瀏覽器。從評論
你的意思是:'parseInt(style.getPropertyValue('height'));' – vsync
如果css中沒有高度,那麼Internet Explorer將返回「auto」,所以你沒有它的高度! – Mic
@Mic哪個Internet Explorer? – Fresheyeball
編輯:
http://jsfiddle.net/hTGCE/1/(更多的代碼,然後預期)
在你找到的功能,如上網本:
function getRectangle(obj) {
var r = { top: 0, left: 0, width: 0, height: 0 };
if(!obj)
return r;
else if(typeof obj == "string")
obj = document.getElementById(obj);
if(typeof obj != "object")
return r;
if(typeof obj.offsetTop != "undefined") {
r.height = parseInt(obj.offsetHeight);
r.width = parseInt(obj.offsetWidth);
r.left = r.top = 0;
while(obj && obj.tagName != "BODY") {
r.top += parseInt(obj.offsetTop);
r.left += parseInt(obj.offsetLeft);
obj = obj.offsetParent;
}
}
return r;
}
如果你想減掉填充
/邊界寬度設置在CSS文件中,而不是動態屬性中的樣式屬性:
var elem = document.getElementById(id);
var borderWidth = 0;
try {
borderWidth = getComputedStyle(elem).getPropertyValue('border-top-width');
} catch(e) {
borderWidth = elem.currentStyle.borderWidth;
}
borderWidth = parseInt(borderWidth.replace("px", ""), 10);
和填充相同。然後你計算它。
我有同樣的問題,發現沒有提供原生交叉plattform解決方案,但該方案易於雖然
var actual_h = element.offsetHeight;
if(parseInt(element.style.paddingTop.replace('px','')) > 0){
actual_h=actual_h - parseInt(element.style.paddingTop.replace('px',''));
}
if(parseInt(element.style.paddingBottom.replace('px','')) > 0){
actual_h=actual_h - parseInt(element.style.paddingBottom.replace('px',''));
}
請注意,因爲MDN [州](https://developer.mozilla。 org/en-US/docs/Web/API/HTMLElement/style#Getting_style_information),「style'屬性對於學習元素的風格沒有用處,因爲它只代表元素內聯'樣式「屬性[...]」。 – Spooky
盒子大小在IE7中不起作用 – Chandrakant
- 1. 獲取內部IFRAME元素的高度與jQuery
- 2. 獲取元素高度
- 3. 獲取元素的寬度和高度
- 4. td元素內部的100%高度div
- 5. 獲取每個父元素的最高子元素的高度
- 6. 獲取未顯示元素的子元素的寬度/高度
- 7. CSS:固定可變高度元素內部分的高度
- 8. 獲取元素高度的問題
- 9. 獲取ckeditor元素的高度
- 10. 獲取前一個元素的高度
- 11. AngularJS - 無法獲取元素的高度
- 12. 獲取兒童元素的高度
- 13. 獲取元素的完整高度?
- 14. 獲取元素的總高度?
- 15. 獲取準確的元素高度
- 16. 獲取ui-view中元素的高度
- 17. 獲取HTML元素的高度jQuery
- 18. Safari高度100%元素內的最大高度元素
- 19. 獲得元素的高度
- 20. 如何獲取當前元素高度?
- 21. 使用Vuejs獲取元素高度
- 22. AngularJS:如何獲取元素高度
- 23. jquery獲取自動高度元素的高度
- 24. jquery獲取內聯元素的高度僅在Firefox中工作
- 25. 獲取對象元素內的圖像高度
- 26. 獲取元素的內容寬度
- 27. 隱藏元素內的跨度高度
- 28. 將元素的高度設置爲%高度的元素高度
- 29. 獲取iframe的內部元素
- 30. 獲取元素的內部文本
爲什麼不能在CSS中使用'邊界box'?這樣你不必擔心這些事情......然後你可以使用'offsetHeight',它將返回沒有邊距的適當高度。 – elclanrs
這是一個非常具體的問題,我製作了一個沒有CSS控制的插件,我只需要使用我得到的結果 – vsync
所以...我猜你仍然可以設置「box-sizing:border-box」,它會爲你節省一些時間和頭痛。 – elclanrs