float布局打破标准流,神助攻clear清浮动

时间:2024-01-04 21:18:38

布局是什么?根据功能划分小块,再根据设计稿还原,书写静态页面,然后再在块里面填充内容,完善功能,js施加交互效果。div作为一个容器,独占一行,代码书写习惯从上至下属于标准流,而浮动float的css样式则打破div(标准流)独占一行的传统!具体代码展示如下:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>float布局打破标准流,神助攻clear清浮动</title>
<style type="text/css">
.box1>img{
float: left;/*左浮动*/
float: right;/*右浮动*/
float:none;/*不浮动*/
}
/* .box1,.box2,.box3,.box4,.box5{
float: left;
width: 200px;
height: 200px;
margin: 10px;
background-color: red;
} */
/* 如现在展示,我想要5个盒子一行展示,是不是要float,可是float后,我们发现本来包裹盒子的大容器box受到了浮动的影响,是不是要清浮动 ,我们发现给大盒子添加高度是可以撑开它的,但是这样是不是太麻烦,如果里面盒子的宽高变化,外面的盒子的高度是不是又要调整,那么有没有其他办法了*/
.box1{
width: 200px;
height: 200px;
margin: 10px;
background-color: red;
}
.box2,.box3,.box4,.box5{
float: left;
width: 200px;
height: 200px;
margin: 10px;
background-color: red;
}
.box{
/* border: 1px solid red; */
background-color: chartreuse;
/* height: 300px; */
}
.box6{
clear: both;
}/*新添加一个class,用 clear: both;清除浮动*//*可是外面不能为了清除浮动就单独添加一个class在页面上*/ /*重点来了:使用伪元素清除浮动*/
/* .box::after{
content: "";
display: block;
clear: both;
} */
/* 根据h2里面的文字考虑的问题只能这样展示 */
.box::before,.box::after{
content: "";
display: table;
}
.box::after{
clear: both;
}
</style>
</head>
<body>
<!-- <div class="box1">/*一个大的容器盛放所有浮动元素*/
<img src="https://pic.cnblogs.com/avatar/1350951/20200208114706.png" alt="">
<div class="box2">学习脚本最好的方法之一就是多练习,测试是来表明bug的存在而不是不存在。</div>
</div> -->
<div class="box">
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
<div class="box4"></div>
<div class="box5"></div>
<!-- <div class="box6"></div> -->
</div>
<h2>最后一个问题来了,根据"盒模型大小取决于它的padding,margin,border数值"这篇文章介绍的margn值问题话,我们把.box里面的border值去除下.box1不做浮动话,正常思维它和上面的box是有一个margin值10px的间隔的,但是现在没有</h2>
</body>
</html>