当前位置: 首页 > 面试题库 >

HTML元素(div)的全高,包括边框,内边距和边距?

龚鸿雪
2023-03-14
问题内容

我需要一个div的全高,我目前正在使用

document.getElementById('measureTool').offsetHeight

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

但是div中的一个嵌套元素具有margin- top20%,因此我得到了错误的度量。我试图style.marginTopscrollHeight没有成功。

如何在JavaScript中获取元素(div)的完整高度(边框,边距,边距)?

如果没有其他办法,我可以使用jQuery。


问题答案:

如果可以使用jQuery:

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

对于香草javascript,您需要编写更多内容(像往常一样…):

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);
}


 类似资料:
  • 问题内容: 我的问题很简单: 为什么在Firefox中,内联元素的边距顶部被忽略? 有人知道吗? 问题答案: 这不仅限于Firefox,而且在CSS 2.1规范中进行了定义: ### 8.3边距属性:“ margin-top”,“ margin-right”,“ margin-bottom”,“ margin-left”和“margin” 边距属性指定框的边距区域的宽度。’margin’速记属性设

  • 我使用flexbox在桌面窗口屏幕中布局我的index.html,在一行中有两个div元素,在第二行中有一个长div元素,在第三行中有两个div元素,其中一个包含一个列表。我需要第一行和第三行中两个div元素之间的一些行间距。当我尝试在div元素上使用左边缘或右边缘时,div元素会相互折叠。 我试图改变每个div元素的宽度,但它们最终会互相折叠。我还尝试了在内容类上证明内容和对齐内容,但没有任何结

  • 主要内容:定义各个方向上的内边距,内边距简写形式内边距(padding)是指元素内容区与边框之间的区域,与外边距不同,内边距会受到背景属性的影响。您可以通过下面的属性来设置元素内边距的尺寸: padding-top:设置元素内容区上方的内边距; padding-right:设置元素内容区右侧的内边距; padding-bottom:设置元素内容区下方的内边距; padding-left:设置元素内容区左侧的内边距; padding:内边距属性的

  • 内边距是元素的边框和内容之间的空白区域,用来控制元素边框和内容之间的距离。 设置内边距的最简单办法就是使用 padding属性,其值可以是百分比、长度值,默认值是 0,不允许负值。 内边距是可选的,默认值是 0。所以,如果没有显式声明 padding属性,元素就不会出现内边距。但是,浏览器却为许多元素提供了默认的样式,内边距也不例外。所以,为了在所有浏览器下表现一致,常常需要设计师将元素的 pad

  • 问题内容: 我正在尝试为HTML中的div元素添加边框。下面是我的代码。 由于某些原因,边框不会显示。我在这里看过一个类似的问题,但我不知道为什么边框没有出现。有什么建议吗? 注意:此代码段是HTML页面的一部分。可根据要求提供其他代码 问题答案: 默认值是。您需要为边框设置不同的值。

  • 问题内容: 在当前的工作中,我需要在容器上产生一个双边框。边框样式:double;做到这一点,但是我的客户希望外部边界更厚,内部边界具有正常的厚度。 除了创建2个div之外,还有1个嵌套在另一个div中,外部div具有更大的厚度,或者通过使用边框图像,有什么方法可以用CSS来实现,而仅使用1 div?指定边框样式:double; 并且仍然能够使外边界更厚。 问题答案: 轮廓包含在CSS3规范中,并