【发布时间】:2013-12-17 02:55:27
【问题描述】:
我确定以前有人以某种形式提出过这个问题,但我就是找不到答案..
我有一些嵌套的 div
<div class="parent">
<div class="child">A</div>
</div>
而且孩子有 display:inline-block 和 overflow:hidden
.parent{
background-color:red;
}
.child{
background-color:green;
display:inline-block;
overflow:hidden;
}
它被渲染成这样:
您可以注意到父级比子级高 5 像素。
额外的高度从何而来?
这里是示例:http://jsfiddle.net/w8dfU/
编辑: 我不想删除 display:inline-block 或 overflow:hidden,这是说明问题的简化示例,但在我的实际布局中我需要它们。 我只是想了解为什么会出现这个额外的高度。是否在某处指定它应该是这样的?这是其他一些 CSS 功能的结果吗?
【问题讨论】:
-
我认为这篇文章将完全回答您的问题stackoverflow.com/questions/9273016/…
-
只使用 inline 而不是 inline-block 你的问题就会解决jsfiddle.net/w8dfU/1
-
技术上的答案是
overflow:hidden移动了内联块的基线。默认情况下,line-box 的支柱被限制在与 inline-block 相同的基线上,因此 line-box 及其包含的 div 必须增加高度以包含支柱的下降部分。但是,Maksym Stepanenko 给出的链接中的最佳答案更清楚地解释了这个问题。 -
@MaksymStepanenko 谢谢你,这个问题的答案确实为我澄清了这个问题。
-
@Alohci 你的评论也很有帮助,如果你把它作为答案,我会接受它