html - 为什么有时父元素的高度为 0px?

标签 html css

几周前我开始使用 HTML 和 CSS,这种情况发生了好几次,我不知道为什么。

有时,我将背景应用于父元素,并在其上包含一些内容,但父元素的 height 保持 0 而不是接收 height children 的。有时确实如此(我认为这应该是正确的行为,不是吗?)

我的lossarySelector 的高度为0。因此我的背景颜色没有显示。

.glossarySelector {
  background: #EFEFEF; 
}

<div class="glossarySelector">
  <ul>
    <li><a href="#">A</a></li>
    <li><a href="#">B</a></li>
    <li><a href="#">C</a></li>
    <li><a href="#">D</a></li>
    <li><a href="#">E</a></li>
  </ul>
</div>

为什么?

可以看到完整代码here

最佳答案

编辑:这个答案提供了几种解决此问题的方法,每种方法都有其优点和缺点:https://stackoverflow.com/a/1633170/388916


当元素没有子元素或者使用 position:absolute 或 float 从页面流中删除子元素时,该元素是完全平坦的(0px 高度)。由于列表元素都具有 float: left,因此 glossarySelector 内不再有元素来扩展其高度。

我看到您创建了一个名为“clearFix”的类。只需在 glossarySelector div 中添加一个具有该类的 div 即可修复 float 问题:

<div class="glossarySelector">
    <ul>
        <li><a href="#">A</a></li>
        <li><a href="#">B</a></li>
        <li><a href="#">C</a></li>
        <li><a href="#">D</a></li>
        <li><a href="#">E</a></li>
    </ul>
    <div class="clearFix"></div>
</div>

fiddle :http://jsfiddle.net/gTKNk/12/

关于html - 为什么有时父元素的高度为 0px?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13139359/

相关文章:

javascript - 需要在其他 div 悬停时显示一个 div

html - 垂直对齐特定 child 的底部

html - ie8 和 ie9 中的表格单元格内容旋转错误

jquery - 删除列表中元素后面的元素,jQuery - 第 2 部分

html - CSS 字体不起作用,即

css - 样式表未加载 checkin TFS 的元素(通过 visual studio online)

javascript - 向后滚动时视差元素位置不同

html - 粗体谷歌字体显示的文字比平时低

html - HTML 输入字段的标准名称

html - 单击 anchor 时取消选中复选框(仅限 CSS)