【问题标题】:jQuery used height of Div elementjQuery使用了div元素的高度
【发布时间】:2010-08-27 10:22:34
【问题描述】:

我尝试获取 div 元素的确切使用高度。它应该是 .outerHeight() 但如果 div 的最后一个孩子有边框底部,这不起作用。 我做了一个小例子:

HTML:

<div id="iWantThisHeight" class="box">
<div id="div1" style="">innerDiv1</div>
<div id="div2" style="">innerDiv2</div>
</div>

CSS:

.box div{
    height:100px;
    margin-bottom:20px;
}

代码示例:http://jsfiddle.net/T3b6r/4/ 使用的高度应为 240 像素(高度为 2x100 像素 + 边距为 2x20 像素),但最后一个边距底部被忽略。 (顺便说一下,Margin-top 完全被忽略了)

我是否监督了某些事情,或者我是否必须检查每个元素的边距,以获得 div 使用的空间?

【问题讨论】:

  • 计算出的margin-top0

标签: jquery css dimensions


【解决方案1】:

如果您将容器 div 包裹在边框中,它会根据需要返回高度。只需使用与背景相同的颜色边框即可。

http://jsfiddle.net/T3b6r/7/

【讨论】:

  • 边框不适合我的设计。但你让我想到了一个主意:“显示:内联块;” jsfiddle.net/T3b6r/8
【解决方案2】:

您在使用.outerHeight(true) 吗?如果没有布尔值 true,则不会包含边距。

【讨论】:

  • 我不太确定 outerHeight() 是如何工作的,但它可能最后的边距底部不计算在内,因为父元素已经结束 - 如果我检查 jsfiddle 示例,Chrome 会报告父元素高度在 220px 处完成,最后的 margin-bottom 不计算在内。要强制计数,您可以添加换行符或类似内容。
  • 这看起来像一些奇怪的盒子模型问题,不是吗?无论是否有边框,Chrome 都会以不同的方式计算它:imgur.com/Voecr.png这可以通过指定 doctype 来解决吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-08
  • 1970-01-01
  • 2022-12-08
  • 2011-07-29
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
相关资源
最近更新 更多