标准流:
标准流就是元素在页面中的默认排列方式,也就是元素在页面中的默认位置。
1.1 块元素----独占一行----从上到下排列
1.2 行内元素----不独占一行----从左到右排列,遇到边界换行
1.3 行内块元素----不独占一行----从左到右排列,遇到边界换行
2.浮动:float
1.属性:
left---向左浮动
right---向右浮动
2.浮动的特点:
2.1 脱标---脱离标准流,释放当前盒子的默认位置---影响父盒子的高度
2.2 浮动的方向---水平方向(左,右,没有中间)
2.3 本质将元素转换为行内块元素---横向排列,并且可以设置宽高
标签代码:
<div class="left">左</div> <div class="right">右</div>
样式代码:
<style> div { height: 200px; width: 300px; } .left { background-color: aqua; /* 浮动到左 */ float: left; } .right { background-color: burlywood; /* 浮动到左 */ float: left; /* 浮动到右 */ /* float: right; */ } </style>
效果:
小案例:
标签代码:
<ul> <li><a href="">首页</a></li> <li><a href="">菜鸟工具</a></li> <li><a href="">菜鸟笔记</a></li> <li><a href="">参考手册</a></li> <li><a href="">用户笔记</a></li> <li><a href="">测验/考试</a></li> <li><a href="">本地书签</a></li> </ul>
样式代码:
<style> ul { height: 50px; line-height: 50px; list-style: none; background-color: rgb(84, 145, 84); } ul li { float: left; padding: 0 15px; } ul li a { text-decoration: none; color: rgb(255, 255, 255); } </style>
效果:
3.浮动清除:
方法一(额外标签法):在父元素内容的最后添加一个块级元素,设置 CSS 属性 clear: both
方法二(双伪元素法[推荐]):
/* before 解决外边距塌陷问题 */ /* 双伪元素法 */ .clearfix::before, .clearfix::after { /* 插入的内容 */ content: ""; display: table; } /* after 清除浮动 */ .clearfix::after { clear: both; }
方法三(单伪元素法):
方法四(overflow [推荐]):父元素添加 CSS 属性 overflow: hidden
方法五:给父盒子设置高度[不推荐]
1.浮动后的影响:
1.1.父盒子的高度塌陷,背景颜色不会被子盒子撑开
1.2.父盒子下边的其他元素会上移
2.浮动的清除:
方法一:额外标签法---在浮动的盒子后面添加一个空的标签,设置clear:both---不推荐使用
方法二:给父盒子添加固定高度---不推荐使用---动态数据列表不适用
方法三:单伪元素法---给父盒子添加:after伪元素,设置clear:both---推荐使用
方法四:双伪元素法---给父盒子添加:before和:after伪元素,设置clear:both---推荐使用---即 可以清除浮动干扰,同时又能解决父盒子高度塌陷的问题