Float使用小结
当一个元素浮动之后,它会被移出正常的文档流,然后向左或者向右平移,一直平移到碰到了所处的容器的边框,或者碰到了 另外一个浮动的元素 。
1.只有横向浮动,并没有纵向浮动。
2.当元素应用了float属性后,将会脱离普通流,其容器(父)元素将得不到脱离普通流的子元素高度。
3. 会将元素的display属性变更为block
4.浮动元素的后一个元素会围绕着浮动元素(典型运用是文字围绕图片),与应用了position的元素相比浮动元素并不会遮盖后一个元素。
5.浮动元素的前一个元素不会受到任何影响(如果你想让两个块状元素并排显示,必须让两个块状元素都应用float)
1)元素同时应用了position: relative、float、(top / left / bottom / right)属性后,则元素先浮动到相应的位置,然后再根据(top / left / bottom / right)所设置的距离来发生偏移。
2)元素同时应用了position: absolute及float属性,则float失效。
3)第一个元素应用了position之后会覆盖着接下来的float元素(如果两个元素所处的位置相同)
需要重点看下z-index章节
浮动元素margin和负元素的padding不会合并。 正常的也不会
元素被设置成浮动后,该元素会进行延伸进而包含其所有浮动的子元素。
比如如元素不是浮动的,子元素浮动,子元素比较高,则子元素会超出父元素高度,如果父元素设计了float属性,则会包裹所有子元素。
修改后:包裹元素
1、行内元素与浮动元素发生重叠,其边框,背景和内容都会显示在浮动元素之上
2、块级元素与浮动元素发生重叠时,边框和背景会显示在浮动元素之下,内容会显示在浮动元素之上
1)通过在容器中添加一个标签,设置该标签的样式为 clear: both
2)容器设置overflow: hidden或auto