设置float的元素,会脱离文档流,往设置的方向进行浮动,直到遇到父级的边界或者其他的浮动元素 就会停止。
浮动的元素会脱离文档流;
浮动产生的影响:
1,浮动的元素撑不开父级的高度;
2,设置浮动之后,块级元素的宽度不再跟随父级的宽度,而是由内容撑起;行级元素设置浮动之后,可以设置宽高尺寸以及盒模型;
3,
以正常的观点来说,我给div2,div3左浮动以后,div4 应该自动上去,但是发现了只有div4盒子上去了,但是它的文本内容也就是"div4",并没有跟随上去,这也就是浮动带来的影响,当浮动元素提升层级覆盖到没有浮动的元素的时候,没有浮动的元素的文本内容并不会被覆盖。
又比如:
一般我们用浮动的时候,相邻元素也都要用上浮动。
解决浮动带来的影响:
1,给浮动的元素的底部加入一个新的标签:设置css样式:clear :both;clear:both;只能清除上面的元素浮动带来的影响,不能清除下面的;
2,给父级设置宽高;
3,给父级设置伪元素:
(zoom:1;是兼容IE6、7的)
div{
zoom:1;
}
div::after{
content:"";
display:block;
height:0px;
clear:both;
}