float布局打破标准流,神助攻clear清浮动
布局是什么?根据功能划分小块,再根据设计稿还原,书写静态页面,然后再在块里面填充内容,完善功能,js施加交互效果。div作为一个容器,独占一行,代码书写习惯从上至下属于标准流,而浮动float的css样式则打破div(标准流)独占一行的传统!具体代码展示如下:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>float布局打破标准流,神助攻clear清浮动</title> 7 <style type="text/css"> 8 .box1>img{ 9 float: left;/*左浮动*/ 10 float: right;/*右浮动*/ 11 float:none;/*不浮动*/ 12 } 13 /* .box1,.box2,.box3,.box4,.box5{ 14 float: left; 15 width: 200px; 16 height: 200px; 17 margin: 10px; 18 background-color: red; 19 } */ 20 /* 如现在展示,我想要5个盒子一行展示,是不是要float,可是float后,我们发现本来包裹盒子的大容器box受到了浮动的影响,是不是要清浮动 ,我们发现给大盒子添加高度是可以撑开它的,但是这样是不是太麻烦,如果里面盒子的宽高变化,外面的盒子的高度是不是又要调整,那么有没有其他办法了*/ 21 .box1{ 22 width: 200px; 23 height: 200px; 24 margin: 10px; 25 background-color: red; 26 } 27 .box2,.box3,.box4,.box5{ 28 float: left; 29 width: 200px; 30 height: 200px; 31 margin: 10px; 32 background-color: red; 33 } 34 .box{ 35 /* border: 1px solid red; */ 36 background-color: chartreuse; 37 /* height: 300px; */ 38 } 39 .box6{ 40 clear: both; 41 }/*新添加一个class,用 clear: both;清除浮动*//*可是外面不能为了清除浮动就单独添加一个class在页面上*/ 42 43 /*重点来了:使用伪元素清除浮动*/ 44 /* .box::after{ 45 content: ""; 46 display: block; 47 clear: both; 48 } */ 49 /* 根据h2里面的文字考虑的问题只能这样展示 */ 50 .box::before,.box::after{ 51 content: ""; 52 display: table; 53 } 54 .box::after{ 55 clear: both; 56 } 57 </style> 58 </head> 59 <body> 60 <!-- <div class="box1">/*一个大的容器盛放所有浮动元素*/ 61 <img src="https://pic.cnblogs.com/avatar/1350951/20200208114706.png" alt=""> 62 <div class="box2">学习脚本最好的方法之一就是多练习,测试是来表明bug的存在而不是不存在。</div> 63 </div> --> 64 <div class="box"> 65 <div class="box1"></div> 66 <div class="box2"></div> 67 <div class="box3"></div> 68 <div class="box4"></div> 69 <div class="box5"></div> 70 <!-- <div class="box6"></div> --> 71 </div> 72 <h2>最后一个问题来了,根据"盒模型大小取决于它的padding,margin,border数值"这篇文章介绍的margn值问题话,我们把.box里面的border值去除下.box1不做浮动话,正常思维它和上面的box是有一个margin值10px的间隔的,但是现在没有</h2> 73 </body> 74 </html>