2017-03-14 31 views
-3

据我所知(不远),一个divheight:0;和一个div没有指定的高度都将扩大到包含其子元素所需的高度。你为什么要编码height:0在CSS中高度:0和高度没有指定的区别是什么?

(我敢肯定,有一个很好的理由)

+3

''div' with'height:0' will never expand。没有指定高度的'div'会。 –

+0

它可能看起来像是因为内容溢出而扩展。尝试将边框或背景颜色或“overflow:hidden”放置到“height:0”元素。 – JJJ

+0

谢谢你们。我要删除这个问题,这是愚蠢的。哦,等等,我现在不能,因为它已经被回答了。好吧。 – Monkeybrain

回答

2

我不认为你说的divheight:0展开显示它的children.As正如你所料,通过设置高度为零,div消失。它的孩子仍然可能被展示,但div的高度为零。尝试组合:

#my-div{ 
    height:0; 
    overflow:hidden; 
} 

这样,任何溢出从div将被隐藏和height:0效果应该会更为明显。

2

不正确。

具有特定高度的div永远不会展开。所以如果一个div的内容大于所需的高度,内容将会溢出,但div不会扩展。

下面是一个例子来说明这一点。

#div-1 { 
 
    margin: 5px; 
 
    border: 5px solid grey; 
 
    background: red; 
 
} 
 

 
#div-2 { 
 
    margin: 5px; 
 
    border: 5px solid grey; 
 
    background: green; 
 
    height: 0; 
 
}
<div id="div-1"> 
 
\t <p>a</p> 
 
\t <p>a</p> 
 
\t <p>a</p> 
 
\t <p>a</p> 
 
</div> 
 
<div id="div-2"> 
 
\t <p>a</p> 
 
\t <p>a</p> 
 
\t <p>a</p> 
 
\t <p>a</p> 
 
</div>

0

当您指定height: 0元素不会膨胀大于零个像素高。

如果不指定高度,则元素将展开到其内容的高度。

0

身高:0与身高没有明确区别。两者都会显示内部内容,但显示哪个高度:0这是内容将显示如果您不设置溢出:隐藏;但不会增加基于高度的内容,但没有指定的高度会显示内容,其高度会自动增加,请参阅[这里] [1]。

[1]: https://jsfiddle.net/ntpr5enu/ 
相关问题