浮动元素的特征
- 浮动元素会脱离正常的文档流,按照其外边距指定的位置相对于它的上一个块级元素(或父元素)显示
- 浮动元素后面的块级元素的内容会向此浮动元素的外边距靠齐,但是边框和背景却忽略浮动元素而向上一个任意非浮动元素靠齐
- 浮动元素后面的内联元素会向此浮动元素的外边距靠齐。
float 造成的影响
- 对父元素的影响
对其父元素来说,元素浮动之后,它脱离当前正常的文档流,所以他也无法撑开其父元素,造成父元素的塌陷。
- 对兄弟元素(非浮动)的影响
- 如果兄弟元素为块级元素,该元素会忽视浮动元素而占据它的位置,并且元素会处在浮动元素的下层(并且无法通过z-index 属性改变他们的层叠位置),但它的内部文字和其他行内元素都会环绕浮动元素。
- 如果兄弟元素为内联元素,则元素会环绕浮动元素排列。
- 对其兄弟元素(浮动)的影响
- 同一个方向的兄弟元素:当一个浮动元素在浮动过程中碰到同一个方向的浮动元素时,它会紧跟在他们后面
- 反方向的浮动元素:互不影响,位于同一条水平线上,当空间不够时会被挤下。
- 对子元素的影响
当一个元素浮动时,在没有清除浮动的情况下,他无法撑开其父元素,但它可以让自己的浮动子元素撑开它自身,并且在没有定义具体宽度情况下,使自身的宽度从100%变为自适应(浮动元素display:block)。其高度和宽度均为浮动元素高度和非浮动元素高度之间的最大值。