【 CSS 】浮动

49 阅读1分钟

2118383072-5dce0d2c66bbd_fix732

浮动的初衷: 为了实现文字环绕效果,如上图所示☝️

然而在日常使用中,经常用它来进行页面布局等,因此产生一系列意想不到的漏洞~(故而能不用就不要用它)

但是你不用别人会用啊😆,没办法还是得了解浮动的特征以及如何解决浮动带来的漏洞


一、浮动特征

  • 浮动元素会破坏自身的linebox,失去高度。如没有其它的元素来撑开父元素,父元素高度就将出现高度塌陷

  • 元素设置浮动后,剩余元素重新依据标准流的顺序进行重新排列


二、清除浮动的方案

1) 简单粗暴型,添加最后一个子标签

<div style="clear:both"></div>

2) 父元素设置:overflow:hidden 触发BFC (也需注意实际场景,不然overflow设置也会带来不定时炸弹)

<div style="width:400px; overflow:hidden; border:5px solid green">
  <div style="float:left; width: 200px; height:100px; border:1px solid red">1</div>
</div>

3)CSS代码生成一个具有clear属性的元素(通用性强,覆盖面广,无副作用)

<div style="width:400px; border:5px solid green" class="fixedClear">
  <div style="float:left; width: 200px; height:100px; border:1px solid red"></div>
</div>

.fixedClear::after {
  display:block; 
  content:'.'; 
  clear:both;
  line-height:0;
  visibility:hidden;
}

参考:

【1】大白话理解浮动

【2】CSS float浮动的深入研究、详解及拓展