高度塌陷问题详解
1. 什么是高度塌陷
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
.box1 {
border: 10px red solid;
}
.box2 {
width: 100px;
height: 100px;
background-color: blue;
float: left;
}
.box3 {
height: 100px;
background-color: yellow;
}
</style>
</head>
<body>
<div class="box1">
<div class="box2"></div>
</div>
<div class="box3"></div>
</body>
</html>
说明
- 在文档流中,父元素的高度是默认被子元素撑开的
- 但是当为子元素设置浮动以后,子元素会完全脱离文档流,
- 此时将会导致子元素无法撑起父元素的高度,导致父元素的高度塌陷.
- 由于父元素的高度塌陷了,则父元素下的所有元素都会向上移动,这样将会导致页面布局混乱。
- 所以在开发中一定要避免出现高度塌陷问题
- 我们可以将父元素的高度写死,以避免塌陷问题的出现
- 但是一但高度写死,父元素的高度将不能自动适应子元素的高度,所以这种方法是不推荐使用的。
2. 解决方法
2.1. 解决方法一
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
.box1 {
border: 10px red solid;
zoom: 1;
overflow: hidden;
}
.box2 {
width: 100px;
height: 100px;
background-color: blue;</