float属性
float 属性可以指定一个元素应沿其容器的左侧或右侧放置,允许文本和内联元素环绕它。
(1)float 属性最初只用于在一段文本内浮动图像, 实现文字环绕的效果;
(2)但是早期的CSS标准中并没有提供好的左右布局方案, 因此在一段时间里面它成为网页多列布局的最常用工具;
绝对定位、浮动都会让元素脱离标准流,以达到灵活布局的效果
float:none; 默认值
float:left; 向左浮动
float:right; 向右浮动
浮动规则
- 元素一旦浮动后, 脱离文档流,如果元素是向左浮动,浮动元素的左边界不能超出包含块(父级)的左边界,向右浮动也一样。
- 浮动元素之间不能层叠,如果一个元素浮动,后浮动的元素将紧贴着前一个浮动元素。
- 包含块的宽度不够,水平方向剩余的空间不够显示浮动元素,浮动元素将移到下一 行。
- 不再向父级元素汇报高度
- 浮动元素不能与行内级内容层叠,行内级内容将会被浮动元素推出
- inline元素、inline-block元素浮动后,其顶部将与所在行的顶部对齐。
规则一

浮动水平排列
width宽度 设置为1190px
水平排列的div间隙设置margin-right:10px
给浮动元素包裹一个div 设margin-right:-10px
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><style>* {margin: 0;padding: 0;}.content{width: 1190px;margin: 0 auto;background-color: #f4f4f4;}.wrapper{overflow: hidden;margin-right: -10px;}.item{float: left;margin-right:10px ;}.item-left{/* 290*4=1160 margin-right*4=40 */width: 290px;height: 370px;background-color: #f90;}.item-right{width: 290px;height: 180px;background-color: #f90;margin-bottom:10px ;}</style></head><body><div class="content"><div class="wrapper"><div class="item item-left"></div><div class="item item-left"></div><div class="item item-right"></div><div class="item item-right"></div><div class="item item-right"></div><div class="item item-right"></div><div class="item item-right"></div><div class="item item-right"></div><div class="item item-right"></div><div class="item item-right"></div><div class="item item-right"></div><div class="item item-right"></div><div class="item item-right"></div><div class="item item-right"></div></div></div></body></html>

浮动高度塌陷
因为元素浮动,脱离文档流,不再向父级汇报高度,父元素计算总高度时,就不会计算浮动子元素的高度,导致了高度坍塌的问题。
清除浮动
清浮动的目的是:让父元素计算总高度的时候,把浮动子元素的高度算进去。
clear属性可以指定一个元素是否必须移动(清除浮动后)到在它之前的浮动元素下面;
none:默认值
clear:left; 要求元素的顶部低于之前生成的所有左浮动元素的底部
clear:right; 要求元素的顶部低于之前生成的所有右浮动元素的底部
clear:both; 要求元素的顶部低于之前生成的所有浮动元素的底部
解决方法:给父元素增加::after伪元素
.clear_fix::after{
content: "";
display: block;
clear: both;
visibility: hidden;/* 浏览器兼容性 */
height: 0;/* 浏览器兼容性 */
}
.clear_fix{
*zoom: 1;/* 兼容IE6/7浏览器 */
}
元素层级排名
普通元素 < 浮动元素 < 定位元素
定位元素会把浮动元素和普通元素盖住
布局方案总结
| 布局方案 | 应用场景 |
|---|---|
| 文档流 | 垂直布局 |
| 定布 | 层叠布局 |
| 浮动 | 水平布局 |
