定义

属性名:float,漂流、浮动的意思。

属性值:

  1. left 左浮动
  2. right 右浮动

作用:让元素脱离标准流,同一级的浮动的元素可以并排在一排显示

浮动的元素脱离标准流

标准文档流特点:区分行块。

  1. 块级元素:可以设置宽高,必须独占一行。
  2. 行内元素:不能设置宽高,可以并排一行。

浮动的元素脱离了标准流的限制,具备行块二象性,浮动的元素可以设置宽高,还可以并排一行,而且不会有空白折叠现象,如果浮动的元素不设置宽高,会被内容自动撑开

浮动的元素依次贴边

浮动方向设置不同,进行布局时,加载位置方向不同。

右浮动与左浮动贴边效果是一致的,只是贴边方向不同。按照 HTML 书写顺序依次向右向上一个元素贴边,第一个元素贴父元素的右边

以 left 为例:

父元素宽度足够,所有子元素会按照HTML书写顺序,依次向左进行贴边,父元素左边←子元素1←子元素2← 子元素3←子元素4。

父元素宽度如果不够,例如不能放下一个子元素4,那么子元素4在贴边时,会跳过上一个子元素3,向更上一个子元素2进行贴边,如果子元素2后面位置不够,继续跳过子元素2向前面的子元素1进行贴边。
浮动的定义和性质 - 图1 如果子元素4在跳过子元素3向更前面的子元素2贴边时,子元素2的高度不高于子元素3,子元素2没有延伸出一个高度的边让子元素4贴边,那么子元素4就会跳过子元素2向子元素1进行贴边。
浮动的定义和性质 - 图2 如果贴边的这个子元素4宽度小于子元素2,子元素2的高度低于子元素1和子元素3,形成一个凹陷,子元素4会受前面子元素3高度影响,不会出现钻空现象
浮动的定义和性质 - 图3 如果子元素1后面的距离也放不下子元素4,子元素4最终会贴到父元素左边,如果子元素4的宽度超过了父元素,只会出现溢出现象。
浮动的定义和性质 - 图4 ### 应用: ①下列表格效果。 ②导航栏效果。 ③常见的电商或企业网站布局。 利用浮动依次贴边的性质,用列表结构模拟表格布局结构。 浮动的定义和性质 - 图5 制作方法:<ul> 内部嵌套的 <li> 标签全部浮动,宽高设置相同,边框可以利用标签之间的间距和背景颜色的差异进行制作。 ul li { float: left; width: 100px; height: 30px; margin: 0 2px 2px 0; background‐color: skyblue; line‐height: 30px; text‐align: center; } 注意:同一个盒子中,可以有左浮动和右浮动的子盒子并存,子盒子会根据浮动方向,向上一个同方向的子盒子进行贴边,如果空间不够,也会发生之前依次贴边的各种情况。

浮动的元素没有margin塌陷

margin 塌陷现象出现在标准流中的,浮动元素已经脱离标准流,

不再具有 margin 塌陷现象

浮动的元素让出标准流位置

元素浮动之后,脱离了标准流,会将原来占有的标准流位置

让给后面的一个同级元素

显示效果:浮动的盒子飘浮起来压盖住了后面的同级的元素

在 IE6 、 7浏览器中,有兼容问题:

由于浏览器中有兼容性问题,不会使用这种属性制作压盖效果,

真正的压盖效果使用后期学习的定位制作。

如果没有特殊需求,不允许一个父元素中的子元素有的浮动有的不浮动

同级元素中有一个浮动其他的也要浮动。

字围现象

与前面压盖效果结构类似,同级元素中前面的元素浮动,后面的元素不浮动,不浮动的元素内部还有一些文字,浮动的蓝盒子会压盖住粉盒子的一部分, 但是文字内容不会被盖住,粉盒子中的文字会让开蓝盒子位置,围绕它进行加载。


浮动的定义和性质 - 图6