我需要div的完整高度,我目前正在使用

document.getElementById('measureTool').offsetHeight

offsetHeight-返回元素的高度,包括边框和填充(如果有),但不返回边距

但是div中的一个嵌套元素的值是margin-top,即20%,所以我得到了错误的度量.我试了style.marginTopscrollHeight,但没有成功.

如何在javascript中获得元素(Div)的完整高度(边框、填充、边距)?

如果没有其他方法,我可以使用jQuery.

推荐答案

如果可以使用jQuery:

$('#divId').outerHeight(true) // gives with margins.

jQuery docs

对于vanilla javascript,您需要编写更多内容(如always…):

function Dimension(elmID) {
    var elmHeight, elmMargin, elm = document.getElementById(elmID);
    if(document.all) {// IE
        elmHeight = elm.currentStyle.height;
        elmMargin = parseInt(elm.currentStyle.marginTop, 10) + parseInt(elm.currentStyle.marginBottom, 10) + "px";
    } else {// Mozilla
        elmHeight = document.defaultView.getComputedStyle(elm, '').getPropertyValue('height');
        elmMargin = parseInt(document.defaultView.getComputedStyle(elm, '').getPropertyValue('margin-top')) + parseInt(document.defaultView.getComputedStyle(elm, '').getPropertyValue('margin-bottom')) + "px";
    }
    return (elmHeight+elmMargin);
}

code source

Css相关问答推荐

在React中使用Tailwind自定义组件着色

在ReactJS中使用动画在栅格上添加柱

如何根据屏幕宽度覆盖SCSS变量?

如何在css中创建文件div效果

Firefox中的解决方法:has(不使用JavaScript)

根据现有值计算CSS变量的新值

为什么 CSS Calc() 函数只需要+或-运算符前后有空格

如何在 VS Code 中获得 JavaFX CSS 属性的自动完成功能?

SASS 中的计算表达式

重用 CSS 类更改一些属性

如果父项的不透明度小于 1,则背景过滤器不适用

CSS中元素的重叠

如何为柔和的配色方案提供易于使用的高对比度替代方案?

在表格中隐藏绝对伪元素

JavaFX TreeTableView Css for unfocused selected line

使用css水平+垂直翻转/镜像图像

位置固定宽度 100%

当子元素水平溢出时,为什么忽略父元素的右填充?

使用没有设置宽度或高度的边界半径的胶囊形状?

对象拟合不影响图像