浮动详解

141 阅读1分钟

注意点

  • 设置浮动了之后,元素的display属性就会变成block,但是不会占据整行而是包裹内容类似于inline-block

层叠关系

  • 标准元素:标准流中的元素不存在层叠
  • 浮动元素:float:left/right
  • 定位元素:定位元素会层叠到标准流元素的上面
    • 定位元素之间可以使用z-index调整覆盖关系
  • 标准元素==>浮动元素==>定位元素

浮动规则一

  • 脱离标准流;
  • 朝着向左或向右移动,直到自己的边界紧贴着包含块(一般是父元素)或者其他浮动元素的边界为止;(浮动元素不会覆盖定位元素,只会挤掉定位元素的位置)

浮动规则二

  • 浮动元素不能与行内级内容层叠,行内级内容将会被浮动元素推出
  • 比如行内级元素/inline-block元素/块级元素的文字内容(图文混排)

浮动规则三

  • 行内级元素/inline-block元素浮动后,其顶部将于所在行的顶部对齐(只会在当前行浮动)

浮动规则四

  • 浮动之间不能重叠
  • 如果一个元素浮动,另一个浮动元素已经在那个位置了,后浮动的元素将紧贴着前一个浮动的元素(左浮找左浮/右浮找右浮)
  • 如果水平方向的剩余空间 不够显示浮动元素,浮动元素将向下移动,直到有充足的空间为止

浮动规则五

  • 浮动元素的顶端不能超过包含块的顶端,也不能超过之前所有浮动元素的顶端