深入理解深入理解CSS overflow:hidden——溢出溢出,坍塌坍塌,清除浮动清除浮动
overflow:hidden是overflow属性的一个神奇用法,它可以帮助我们隐藏溢出的元素,清除浮动和解除坍塌。当某一个属性拥
有这么多的功能时,难免使人难以把握,不过不要怕,只要信:看完这篇文章,我相信你绝对能对overflow:hidden的用法熟练
掌握。
下面的代码将作为基本演示代码,每次讲解一个新的作用,我们都要将代码恢复成下面这个样子:
CSS样式:
.container{
background-color: black;
}
.div1{
background-color: aqua;
width: 100px;
height: 100px;
}
.div2{
background-color: red;
width: 100px;
height: 100px;
}
html内容:
<div class="container">
<div class="div1"></div>
<div class="div2"></div>
</div>
程序运行效果:
1.使用使用overflow::hidden隐藏溢出隐藏溢出
当父div拥有固定的高度时,比如height:500px,我们使用overflow:hidden来隐藏溢出。
当使用div+css布局时,会出现很多的div嵌套——父div内嵌套一个或多个的子div,默认情况下,父div的高度是auto——它可
以被子div任意的撑大。然而父div也可以有固定的高度(或宽度),比如height:500px,那么如果子div的高度超过了这个值,在
默认情况下,子div会超出父div的束缚,这就是溢出。我们可以通过设置父div的CSS属性——overflow来对子div进行控制。这
里使用overflow:hidden来隐藏子元素溢出的部分。
2.使用使用overflow::hidden清除浮动清除浮动
当父元素的高height:auto时,我们使用overflow:hidden清除浮动
当我们为div1和div2加上一个属性:float:left后,我们会发现:背景色为黑色父div消失了,这是因为: 浮动的元素脱离文档元
素, 不占据空间。 不浮动的元素会直接无视掉这个元素:父div无视了自己的两个孩子,其高度为0(因为我们没有设置父div
的高度),所以父div没有显现。
想让父div“宽容的”接受自己的两个孩子有两个办法:
(1) 第一个就是让父亲也浮动起来第一个就是让父亲也浮动起来 ,我们试着给父div添加一个CSS属性:float:right,会发现两个颜色块出现在了屏幕的右
边,依然没有父div的身影,然而通过开发人员工具不难看出父div已经包容子div