![在这里插入图片描述](https://img-blog.csdnimg.cn/54c3dcc7b5ec42119053d414c3918d4b.png#pic_center)
1.通过设置父元素的高度解决父级边框塌陷
弊端
高度不好把控
元素固定高度会降低扩展性
<html>
<head>
<title>浮动</title>
<style>
div{
margin: 10px;
padding: 5px;
}
#father{
/* 方法一:加高height */
height: 400px;
border: 1px #000 solid;
}
.layer01{
border: 1px #f00 dashed;
float: left;
}
.layer02{
border: 1px #00f dashed;
float: left;
}
.layer03{
border: 1px #060 dashed;
float: right;
}
.layer04{
border: 1px #666 dashed;
font-size: 12px;
line-height: 23px;
clear: both ;
float: left;
}
</style>
</head>
<body>
<div id="father" class="clear"</div>
<div class="layer01"><img src="imge/1.png" alt=""></div>
<div class="layer02"><img src="imge/2.png" alt=""></div>
<div class="layer03"><img src="imge/3.png" alt=""></div>
<div class="layer04">
浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止.本网页中共有三个图片,分别代表块元素一 块元素二 块元素三
这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div块元素分别向左浮动 向右浮动 或者不浮动.
</div>
</div>
</body>
</html>
2.通过浮动元素后加空白div解决父级边框塌陷
<html>
<head>
<title>浮动</title>
<style>
div{
margin: 10px;
padding: 5px;
}
#father{
border: 1px #000 solid;
}
.layer01{
border: 1px #f00 dashed;
float: left;
}
.layer02{
border: 1px #00f dashed;
float: left;
}
.layer03{
border: 1px #060 dashed;
float: right;
}
.layer04{
border: 1px #666 dashed;
font-size: 12px;
line-height: 23px;
clear: both ;
float: left;
}
/* 方法二: 加空白div*/
.layer05{
clear: both;
}
</style>
</head>
<body>
<div id="father" class="clear"</div>
<div class="layer01"><img src="imge/1.png" alt=""></div>
<div class="layer02"><img src="imge/2.png" alt=""></div>
<div class="layer03"><img src="imge/3.png" alt=""></div>
<div class="layer04">
浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止.本网页中共有三个图片,分别代表块元素一 块元素二 块元素三
这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div块元素分别向左浮动 向右浮动 或者不浮动.
</div>
<div class="layer05"></div>
</div>
</body>
</html>
弊端
如果需要多个空白div,容易造成html标签冗余
3.通过after伪类实现解决父级边框塌陷
页面结构不动只在clear类后面添加after伪类,内容为空;把添加的内容转化为块元素,清除这个元素两边的浮动。写法稍微复杂一点,但是没有副作用,推荐使用。
<html>
<head>
<title>浮动</title>
<style>
div{
margin: 10px;
padding: 5px;
}
#father{
border: 1px #000 solid;
}
.layer01{
border: 1px #f00 dashed;
float: left;
}
.layer02{
border: 1px #00f dashed;
float: left;
}
.layer03{
border: 1px #060 dashed;
float: right;
}
.layer04{
border: 1px #666 dashed;
font-size: 12px;
line-height: 23px;
clear: both ;
float: left;
}
/* 方式三:父级添加伪类after */
.clear:after{
content: ''; /* 在clear类后面添加内容为空 */
display: block; /* 把添加的内容转化为块元素 */
clear: both; /* 清除这个元素两边的浮动 */
}
</style>
</head>
<body>
<div id="father" class="clear"</div>
<div class="layer01"><img src="imge/1.png" alt=""></div>
<div class="layer02"><img src="imge/2.png" alt=""></div>
<div class="layer03"><img src="imge/3.png" alt=""></div>
<div class="layer04">
浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止.本网页中共有三个图片,分别代表块元素一 块元素二 块元素三
这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div块元素分别向左浮动 向右浮动 或者不浮动.
</div>
</div>
</body>
</html>
4.通过为父级边框添加overflow属性现解决父级边框塌陷
overflow属性
属性值 | 说明 |
---|---|
visible | 默认值,内容不会被修剪,会呈现在盒子之外 |
hidden | 内容会被修剪,并且其余内容是不可见的 |
scroll | 内容会被修剪,但是浏览器会显示滚动条,以便查看其内容 |
auto | 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容 |
弊端
下拉列表框的场景不能使用
<html>
<head>
<title>浮动</title>
<style>
div{
margin: 10px;
padding: 5px;
}
#father{
border: 1px #000 solid;
/* 方法四: 父级添加overflow属性 */
overflow: hidden;
}
.layer01{
border: 1px #f00 dashed;
float: left;
}
.layer02{
border: 1px #00f dashed;
float: left;
}
.layer03{
border: 1px #060 dashed;
float: right;
}
.layer04{
border: 1px #666 dashed;
font-size: 12px;
line-height: 23px;
clear: both ;
float: left;
}
</style>
</head>
<body>
<div id="father" class="clear"</div>
<div class="layer01"><img src="imge/1.png" alt=""></div>
<div class="layer02"><img src="imge/2.png" alt=""></div>
<div class="layer03"><img src="imge/3.png" alt=""></div>
<div class="layer04">
浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止.本网页中共有三个图片,分别代表块元素一 块元素二 块元素三
这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div块元素分别向左浮动 向右浮动 或者不浮动.
</div>
</div>
</body>
</html>