浮动带来的影响

清除浮动主要是为了解决,父元素因为子级元素浮动引起的内部高度为0的问题

看下面一段代码

<div class="fater"><div class="box1">one</div><div class="box2">two</div></div>
<div class="box3">three</div>.fater {width: 300px;/* background-color: aquamarine; */border: 1px solid pink;}.box1 {width: 100px;height: 100px;background-color: blue;float: left;}.box2 {width: 150px;height: 120px;background-color: blueviolet;float: left;}.box3 {width: 200px;height: 150px;background-color: brown;}


此时因为盒子1和2浮动,脱离文档流,那么在他们下面的盒子就会顶上来,又因为父盒子没有设置高度,此时父盒子的高度为零,浮动的元素不能撑开父盒子的高度因为因为子元素脱离文档流,父元素不脱离文档流,此时父盒子相当于没有元素所以高度为零
这样浮动带来的影响我们可以通过几种方法进行处理

1.在浮动元素后面添加一个标签 (不推荐使用)

缺点:增加无用标签,缺少语义化


这时候浮动已经清除了,意思就是在两个浮动元素后面加一个块级元素,添加clear属性

clear属性有三个值

left 清除前面的左浮动元素带给我的影响
right 清除前面的右浮动元素带给我的影响
both 同时清除前面的左右浮动元素带给我的影响. 一般情况下选择这个值比较方便.
clear 属性的原理就是给这个标签,添加 margin-top 让该元素的上外边距与浮动元素高度最高的相等, 此父盒子的高度就会被撑开,当然你也不在标签里面添加任何内容,这里只是方便展示效果

2.给父盒子添加 overflow: hidden(触发BFC) 不推荐使用

缺点: 内容增多的时候容易造成不会自动换行导致内容被隐藏掉,无法显示要溢出的元素不推荐使用

效果

现在已经清除了浮动,因为fater元素触发BFC,
什么是BFC呢?

定义:BFC(Block Formatting Context)全称是块级格式化上下文,用于对块级元素排版,默认情况下只有根元素(body)一个块级上下文,但是如果一个块级元素设置了float:left,overflow:hidden或position:absolute样式,就会为这个块级元素生产一个独立的块级上下文,使这个块级元素内部的排版完全独立

作用:独立的块级上下文可以包裹浮动流,全部浮动子元素也不会引起容器高度塌陷,就是说包含块会把浮动元素的高度也计算在内,所以就不用清除浮动来撑起包含块的高度。

那什么时候会触发 BFC 呢?常见的情况如下:

• 根元素;

• float的值不为none;

• overflow的值为auto、scroll或hidden;

• display的值为table-cell、table-caption和inline-block中的任何一个;

• position的值不为relative和static。

3.使用伪元素清除浮动 (推荐)


效果

浮动已经清除了 它的原理和第一次差不多,只不过利用位伪元素没有添加实质的标签,是代码更具有语义化
优点:符合闭合浮动思想,结构语义化正确
缺点:ie6-7不支持伪元素:after,使用zoom:1触发hasLayout.

 .clearfix{*zoom: 1;/*ie6清除浮动的方式 *号只有IE6-IE7执行,其他浏览器不执行*/}
4.使用before和after双伪元素清除浮动


效果跟第三种方式是一样的!!!

css清除浮动的四种方法(详细)相关推荐

  1. CSS清除浮动的四种方法

    CSS清除浮动的四种方法 第一种:使用div空标签法 第二种:父元素使用overflow: hidden 第三种:伪元素选择器:after 第四种:伪元素选择器:before + after 第一种: ...

  2. [Web 前端] 018 css 清除浮动的四种方法

    清除浮动的四种方法 加 clear: ...(见例1) 父级上增加属性 overflow:hidden(见例2.1) 在最后一个子元素的后面加一个空的 div,给它一个样式属性 clear: both ...

  3. html中清除浮动的几种方式,清除浮动的几种方法-关于CSS清除浮动的几种方法

    CSS清除浮动的3种方法,参考: 方法1: #test{clear:both;} #test为浮动元素的下一个兄弟元素 方法2: #test{display:block;zoom:1;overflow ...

  4. CSS清除浮动的几种方法

    来源 | https://www.html.cn/web/css/19613.html 今天这篇文章给大家介绍一下CSS清除浮动的几种方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮 ...

  5. Css 清除浮动的几种方法

    Css清除浮动的几种方法 1. 为什么添加浮动 2. 为什么清除浮动 3. 清除浮动 1) 额外标签法 2) 利用 Css 的 overflow; 3) after伪元素清除浮动 4)after.be ...

  6. CSS清除浮动的四种常用方法及其优缺点

    前言 什么是CSS清除浮动? 在非IE浏览器下,当容器的高度为auto(没有设置),且容器的内容中有浮动(float为left或right)的元素,在这种情况下,容器的高度不能自动伸长以适应内容的高度 ...

  7. 活学活用,CSS清除浮动的4种方法

    清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近. CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受. 1.结尾处加空div标签 ...

  8. CSS清除浮动的五种方法(超详细)

    1.为什么要清除浮动? 浮动的原理是让图片脱离文档流,直接浮在桌面上.我们一般布局的时候都是只设置宽度不设置高度,让内容来自动填充高度.但使用浮动后会让原本填充的高度消失,父元素高度为0,后续添加内容 ...

  9. 【CSS】css清除浮动的几种方法

    使用了float之后,父级盒子的高度变为0了.我们来写一个例子来看一下,创建一个父级div,并设置border属性,然后下边创建两个子元素span,并设置浮动. 具体代码如下所示: 效果: 由上图可以 ...

最新文章

  1. RAC环境下的备份与恢复(二)
  2. 广电系统三八红旗集体推荐材料_【原创】怎么把好几千字的材料压缩成500字?这些方法推荐给你!...
  3. android 九宫格封装,Android 九宫格的实现方法
  4. Nginx跨域问题的案例演示
  5. Python 线程队列 LifoQueue – LIFO - Python零基础入门教程
  6. 统一对比学习框架?没错它来了。
  7. libvirt(virsh命令总结)
  8. scala 正则表达式
  9. 【路径规划】基于matlab A_star算法机器人走迷宫路径规划【含Matlab源码 1332期】
  10. SLIC 超像素分割(C++)
  11. protobuf生成Go代码插件gogo/protobuf
  12. 读书记:认知觉醒(三)元认知、自控力
  13. 通过bind实现DNS服务
  14. 小米手机修改ip代理服务器,小米路由器3 IP地址更改方法【图文】
  15. SHON WEBB:真正的自律,就是将这两件事做到极致
  16. wr720n刷成网络打印_USB打印机通过路由共享wifi局域网打印,同网段
  17. linux 无法定位程序,三步搞定无法定位程序输入点 于动态链接库上
  18. 关于webpack下载loader出现的问题(ERROR in ./src/img/timg.jpg Module build failed: ValidationError: File Loade)
  19. beatsaber自定义
  20. 错题集(求助中):爬虫碰到cookies检查还是script啊甚至连被什么拦住的都不知道···

热门文章

  1. 一个WEB页面的访问过程
  2. 【复杂网络】网络级联模型
  3. 51单片机入门——Proteus 8 Professional的使用
  4. mysql给定两个时间段 获取两个时间段的所有日期
  5. opencv中什么事ROI。ROI有什么作用
  6. RICOH 打印机 打印速度突然变慢
  7. qt base64加解密
  8. US100超声波测距模块的FPGA驱动
  9. 将多个word文件合并为一个的方法
  10. 浏览器极速模式和兼容模式差异 1