前端开发那些事儿视觉艺术

1-2-4【CSS核心样式】CSS浮动

2020-10-27  本文已影响0人  Liyager

我现在所做的一切,都是为了明天可以更自由


文章内容输出来源:拉勾教育大前端就业集训营

1.浮动概述

2.浮动性质——脱离标准流

3.浮动性质——依次贴边

当父元素的宽度足够,浮动元素在同一行展示。

当父元素宽度不够,元素4会在贴边时跳过元素3,找到元素2,如果元素2后面位置足够,则会贴向元素2。

当元素2后面位置也不够时,会贴向元素1。

如果元素4在贴向元素2时,发现元素2的高度不高于元素3时,则会贴向元素1。

如果元素2的高度低于元素3,导致有一个凹槽,元素4的贴边不会“插空”,会在元素3高度基础上贴边元素1。

如果元素1后面的位置也放不下元素4,则会贴向父元素的左边。(超出父元素宽度则溢出)

左右浮动同时存在时,与单一浮动贴边展示规则类似:浮动元素摆放时,有足够的位置则摆放在空缺处,位置不够则换行。

4.浮动性质——没有margin塌陷

说明:标准流中小的margin会塌陷至大的margin中,导致实际显示效果只有大的margin值生效。在浮动中,不存在该现象。

5.浮动性质——让出标准流位置

说明:粉色的盒子左浮动,蓝色的盒子不浮动,但是粉色的盒子却与蓝色的盒子存在重叠,就是因为浮动元素不会占有标准流中的位置。

说明:两个盒子的位置互换,反之,浮动元素依然会根据标准流空白的位置进行展示。

拓展:

  • 由于浏览器中有兼容性问题,不会使用这种属性制作压盖效果,真正的压盖效果使用后期学习的定位制作。
  • 如果没有特殊需求,不允许一个父元素中的子元素有的浮动有的不浮动,同级元素中有一个浮动其他的也要浮动。

6.浮动性质——字围现象

浮动的蓝盒子会压盖住粉盒子的一部分,但是文字内容不会被盖住,粉盒子中的文字会让开蓝盒子位置,围绕它进行加载。

7.浮动存在的问题

说明:虽然是父子关系,但是粉盒子并没把父盒子的高度撑起来。

说明:两组浮动元素分属两个div,但是实际展示上,第二个div中的浮动元素受到了第一个div浮动元素的影响,没有另起一行,反而进行了贴边显示。

以上问题需要被解决,解决的方法是“清除浮动带来的影响”

8.清除浮动一:height

说明:给父元素设定的高度大于浮动元素的实际高度,则不会出问题。

说明:子元素的高度超过父元素的高度时,问题出现了。除非浮动元素高度不会改变,否则不推荐使用。

9.清除浮动二:clear

属性值 作用
left 清除前面左浮动带来的影响
right 清除前面右浮动带来的影响
both 清除前面所有浮动带来的影响

说明:你会发现第二个div盒子不会再被浮动元素覆盖了。

clear属性在其他方面用处更大,不用纠结这个遗留的问题,后面会讲~

10.清除浮动三:隔墙法

说明:虽然下一个盒子的显示不再受影响了,但是父盒子高度没有自适应。

说明:因为那个空div元素是标准流,所以父盒子的高度可以自适应了;又因为空div元素不受浮动影响,所以位置出现在浮动元素下方,所以父盒子的高度包含了浮动元素的高度。

11.清除浮动四:伪类

说明:伪类选择器中的意思是,在.clearfix类标签的最后面,增加一个内容为“1”的文字,转换为块级元素,高度设置为0,不受到浮动元素影响,内容隐藏。

伪类选择器后面会讲,大家目前了解一下即可~

12.清除浮动五:溢出隐藏法

说明:高度自适应原因是,一个元素没有设置高度,同时设置了溢出隐藏,浏览器在加载盒子尺寸时,遇到溢出隐藏浏览器会强制性去检索内部的子元素的高度,不论子元素是标准流还是浮动,都会将最高的高度作为父盒子高度加载。

13.小总结

前端文章汇总目录

https://www.jianshu.com/p/6d80dd616ff4


结束语:一花一世界,一木一浮生,诸君共勉!

上一篇下一篇

猜你喜欢

热点阅读