css中的flow-root属性
display:flow-root;是一种新的布局方式,它在块级布局方式的基础上对子元素的浮动float属性进行了修正。
举个例子,当块级元素的子元素有浮动且高度大于块级元素时就会发生父级容器高度塌陷的问题,因为float会脱离标准流,所以块级布局并不会考虑浮动元素的大小,仅仅关心子块级元素。
所以当子元素浮动很大的时候就会发生子元素溢出容器的情况。
就像这样:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
.container {
width: 300px;
background-color: red;
display: block;
margin: 100px;
}
.item1 {
width: 100px;
height: 400px;
float: left;
background: yellow;
font-size: larger;
}
.item2 {
width: 150px;
height: 50px;
background: blue;
font-size: larger;
}
.item3 {
width: 150px;
height: 50px;
background: rgb(11, 221, 29);
font-size: larger;
}
</style>
</head>
<body>
<div class="container">
<div class="item1">1</div>
<div class="item2">2</div>
<div class="item3">3</div>
</div>
</body>
</html>
当父容器为块级元素,且子元素item1的设为浮动且高度大于父级元素的高度,就会发生高度塌陷,如下图:
要解决此类问题,我们就需要将父级元素设置为
display:flow-root;即可