浮动:默认的流动布局有不足,浮动的目的是为了让块级标签并排显示。
格式:float:left/right/none
特点:
1.浮动的初衷是为了实现字围效果,后面才发现,浮动可以让块级标签并排显示
2.在一个父元素的内部,如果一个元素浮动了,那么它就会脱离标准文档流,后面的没有浮动的元素就像上排
3.如果多个元素浮动了,那么它们就会并排显示,如果是同一个方向的浮动,他们就会紧紧贴在一起
4.如果一个元素浮动了,先向上移动,直到贴到父元素的边界,如果是左浮动就贴到父元素的左边界,右浮动就贴到父元素的右边界
5.如果一个元素没有设置高度,它的高度是靠内容撑起来的,如果这时父元素内部元素都浮动了,那么会造成父元素的高度塌陷,解决方法:显示加高度、overflow:hidden
6.如果元素浮动了,那么他会对兄弟元素造成影响,解决方法:clear:both/left/right
7.当浮动起来的块级标签没有设置高度,那么盒子的高度会尽可能的小,小到包裹住它的内容,这叫包裹性
8.如果一个行内元素浮动了,那么它就变成了一个块级元素
9.如果父元素也浮动了,那么就不会出现高度塌陷
10.如果有左浮动又有右浮动,那么需要把右浮动的元素写前面
11。一个元素浮动了,那么它也受父元素的控制,当父元素的宽度变小时,装不下所有子元素时后面的子元素有贴靠性,当父元素小到极限时,子元素的宽度是不会改变的
元素浮动会造成影响(清除浮动):
1.对父元素造成的影响:父元素高度塌陷
解决:
加高 一般不用这种方法
overflow:hidden 父元素的高度会随着子元素的高度变化而变化,使用过程中,需要注意子元素如果想超过父元素的高度,那么这种方法就不适用
clear:both 在所有子元素的后面加一个空的div标签,在这个div上面加clear:both
2.对后面的兄弟元素造成影响:兄弟元素会向上浮动解决:在受影响的元素上面加clear:both
3.项目中最常用的清除方法:利用伪元素 after
说白了就是手动写一个清除浮动的类
.clear:after{
content="";
display:block;
clear:both;
}