为什么我的div高度为零

123 html css

我的CSS中有以下内容.所有边距/填充/边框全局重置为0.

#wrapper{width: 75%; min-width: 800px;}
.content{text-align: justify; float: right; width: 90%;}
.lbar{text-align: justify; float: left; width: 10%;}
Run Code Online (Sandbox Code Playgroud)

现在当我把我的HTML写成

<div id="wrapper">
    <div class="content">
        some text here
    </div>
    <div class="lbar">
        some text here
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

页面呈现正确.但是,当我检查元素时,div#wrapper显示为0px高.我会一直期待它扩大,直到年底div.contentdiv.lbar...为什么会出现这种情况?

再一次,页面渲染得很好.这种行为让我感到困惑.

Que*_*tin 235

浮动的内容不会影响其容器的高度.该元素不包含任何不浮动的内容(因此没有任何内容阻止容器的高度为0,就像它是空的一样).

overflow: hidden通过建立新的块格式化上下文,可以避免在容器上进行设置.请参阅包含其他技术的浮点数包含浮点数的方法,以解释为何以这种方式设计CSS.

  • [这是另一种方法](https://css-tricks.com/snippets/css/clear-fix/),用于使容器包含在 CSS 中解决的浮动,而无需向页面添加元素。 (2认同)

SLa*_*aks 54

通常情况下,floats不计入父母的布局.

为防止这种情况,请添加overflow: hidden到父级.

  • 谢谢,这个工作,但我不明白为什么...溢出:隐藏据说_hide_溢出的内容,而不是放大元素来包含它. (16认同)

Mel*_*lih 5

我不确定这是正确的方法,但我通过添加display: inline-block;到包装div中解决了。

#wrapper{
    display: inline-block;
    /*border: 1px black solid;*/
    width: 75%;
    min-width: 800px;
}

.content{
    text-align: justify; 
    float: right; 
    width: 90%;
}

.lbar{
    text-align: justify; 
    float: left; 
    width: 10%;
}
Run Code Online (Sandbox Code Playgroud)

  • 这正是我一直在寻找的解决方案。溢出:隐藏导致盒子阴影自然消失。 (3认同)