浮动
浮动将元素排除在普通流之外,即元素将脱离文档流,不占据空间。浮动元素碰到包含它的 边界或者浮动元素的边界停留
-
脱离标准流,不占位置
-
浮动比标准流高半个级别,会覆盖标准流
-
浮动找浮动(同方向浮动),下一个浮动元素会在上一个浮动元素后面左右浮动
-
浮动元素受边界影响
-
浮动的元素有特殊效果(浮动元素具有行内块元素特性并且顶部对齐)父元素里浮动的子元素太多,子元素就会换行显示
-
子浮动,父不浮动
-
兄弟一起浮
-
一浮全浮
为什么要清除浮动
- 子元素浮动后,不占位置,父元素的高度无法被撑开,影响与父元素同级的元素;
- 与浮动元素同级的非浮动元素(内联元素)会跟随其后;
- 若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构解决方法
清除浮动的方法
-
直接给宽高
简单粗暴,字面意思。给浮动的父元素直接给宽高
浮动盒子宽高是100px 100px ,给它的父元素宽高 100px 100px
-
给父元素overflow:hidden
-
额外标签法
在浮动对象的父盒子最后添加一对div标签,并给它clear: both;属性
-
单标签伪元素清除法
给浮动对象的父元素添加
.claerfix::after.claerfix::after { content: ''; display: table; clear: both; } -
双标签伪元素清除法 给浮动的父元素添加
.claerfix::after,.claerfix::before.claerfix::after, .claerfix::before{ content: ''; display: table; clear: both; }