盒子浮动:浮动盒子可以向左或向右移动,直到它的外边缘碰到父盒子或另一个浮动盒子的边框为止。
用途:页面布局
浮动特点:
- 浮动元素大小默认由内容撑出。
- 浮动元素会变成一个块级元素,所以可以设置宽高,换行展示。
- 浮动元素脱离文档流,会影响后面的元素。当后面的元素上面有文字或者图片时,文字或者图片内容不会受影响,不过还是会影响文档的布局。我们可以用这种特性做文字环绕效果。
文字环绕:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<style type="text/css">
p {
width: 500px;
font-size: 25px;
background-color: cyan;
}
img {
float: left;
}
</style>
<body>
<img
src="https://profile-avatar.csdnimg.cn/85620a7432734e14bd07d66f6d95ee86_weixin_44644385.jpg!1"
alt="avatar"
/>
<p>
啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦
啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦
啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦
啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦
啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦
啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦
啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦
啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦啦
</p>
</body>
</html>
最终效果:
盒子塌陷:子盒子的内容到父盒子外面
.container 为父盒子,.item 为子盒子
子盒子的内容到父盒子外面了,盒子就是塌陷了
产生塌陷的原因:
- 父盒子:没有设置高度 且子盒子:脱离文档流(eg:float:left)
解决盒子塌陷问题:
- 对父盒子:把父盒子的高度写死即可
- 对子盒子:清除子盒子的浮动
清除子盒子的浮动方法(3个):
- 在子盒子后面添加一个盒子,给其添加clear:both属性
<!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> .container { width: 90px; height: auto; background-color: aqua; } .item { float: left; width: 50px; height: 100px; background-color: yellow; } .clear { clear: both; } </style> </head> <body> <div class="container"> <div class="item"></div> <div class="clear"></div> </div> </body> </html>
- 给父盒子添加overflow:hidden
<!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> /* 开启BFC */ .container { width: 100px; background-color: aquamarine; overflow: hidden; /* IE6 */ zoom: 1; } .item { background-color: bisque; width: 50px; height: 100px; float: left; } </style> </head> <body> <div class="container"> <div class="item"></div> </div> </body> </html>
- 给父盒子添加 ::after 伪元素(最常用)
<!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>
.container {
width: 90px;
height: auto;
background-color: aqua;
}
.container::after {
content: "";
clear: both;
display: block;
}
.item {
float: left;
width: 50px;
height: 100px;
background-color: yellow;
}
</style>
</head>
<body>
<div class="container">
<div class="item"></div>
<div class="clear"></div>
</div>
</body>
</html>
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xinyu1216589023/article/details/86535611