一、伪元素清除浮动

1 .clearfix:after{
2     content: "";
3     display: table;
4     clear: both;
5 }

为什么选择display:table

构成Block Formatting Context的方法有下面几种:

1. float的值不为none(脱离文档流)
2. overflow的值不为visible。
3. display的值为table-cell, table-caption, inline-block中的任何一个。
4. position的值不为relative和static(脱离文档流)

应用了.clearfix和.menu的菜单极有可能是多级的,所以overflow: hidden或overflow: auto也不满足需求(会把下拉的菜单隐藏掉或者出滚动条)

display: inline-block会产生多余空白,所以也排除掉

剩下的table-cell, table-caption,为了保证兼容可以用display: table来使.clearfix形成一个Block Formatting Context

display: table会产生一些匿名盒子,这些匿名盒子的其中一个(display值为table-cell)会形成Block Formatting Context

这样我们新的.clearfix就会闭合内部元素的浮动

二、空标签清除浮动

三、父元素设置高度,避免坍塌

四、父元素设置overflow:hidden;

设置overflow:hidden,构成了BFC

同理,父元素脱离文档流也会清除浮动

转载于:https://www.cnblogs.com/luvx/p/5833553.html

css清除浮动方法总结相关推荐

  1. 一、css清除浮动方法学习笔记总结(超详细,简单易懂)

    ** css清除浮动方法学习笔记总结(超详细,简单易懂) ** 问题: 上图中,由于container(父级元素)未设置高度,其内部子元素设置了float浮动,导致与container同级(也就是co ...

  2. css清除浮动无效,CSS清除浮动方法总结

    清除浮动的原因 假设一个 div 内部有个浮动的 div,当内部 div 的高度要比外层的父级 div 高度大时,将会导致父级 div 高度无法随着内部 div 的高度自适应,这是由于浮动元素已经脱离 ...

  3. css清除浮动无效,css清除浮动的处理方法

    根据<精彩绝伦的css> JS Bin .news{ outline:1px solid pink } .col{ float: left; width:33%; outline:1px ...

  4. CSS清除浮动_清除float浮动

    CSS清除浮动方法集合 一.浮动产生原因   -   TOP 一般浮动是什么情况呢?一般是一个盒子里使用了CSS float浮动属性,导致父级对象盒子不能被撑开,这样CSS float浮动就产生了. ...

  5. CSS清除浮动大全共8种方法

    清除浮动是每一个 web前台设计师必须掌握的机能.css清除浮动大全,共8种方法. 浮动会使当前标签产生向上浮的效果,同时会影响到前后标签.父级标签的位置及 width height 属性.而且同样的 ...

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

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

  7. div为空的时候 浮动没有效果_3种CSS清除浮动的方法

    点击上方 "前端技术精选" 关注,星标或者置顶 12点00分准时推送,第一时间送达 作者:html中文网 | 编辑:前端妹 来源:html.cn/web/css/19613.htm ...

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

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

  9. css清除浮动大全,共8种方法。

    本文转载自:http://www.jb51.net/css/173023.html 清除浮动是每一个 web前台设计师必须掌握的机能.css清除浮动大全,共8种方法. 浮动会使当前标签产生向上浮的效果 ...

最新文章

  1. 如何使用功能性JavaScript编写经典游戏Snake并在浏览器中播放-完整的代码示例教程
  2. ERROR: Could not install packages due to an OSError: [Errno 28] 设备上没有空间
  3. Servlet学习的两个案例之网站访问次数的统计
  4. RS-485接口协议详解
  5. esp32的MQTT物联网开发记录
  6. TRANSCAD基础技巧——OD矩阵生成
  7. 开源项目Smail动工
  8. 高效GO语言编程(4)——分号
  9. 龙卷风路径_【龙卷风的防范措施】龙卷风的易发地点_龙卷风如何分级 - 妈妈网百科...
  10. VM ware安装Cent OS系统并配置静态IP
  11. 通信协议-CAN总线
  12. Android apk 腾讯云-乐固的加固及签名
  13. 什么蓝牙耳机性价比高?四款高品质蓝牙耳机测评
  14. assoc fetch mysql 用法_php mysql_fetch_assoc 循环遍历表格
  15. openEuler虚拟机配置yum源
  16. 百度地图marker标注上如何加上数字
  17. 联想笔记本加固态后没声音(关于固态那些事)
  18. 解决win10 自动同步时间灰色
  19. 纯国产的大佬周志华,如何扛起了智能学界的一面大旗
  20. Opencv分类器的训练(内含文件批量改名工具及负样本图包下载地址)

热门文章

  1. 【分布式】分布式事务解决方案概述
  2. 使用Arthas 获取Spring ApplicationContext还原问题现场
  3. 统计寄存器AX中1 的个数
  4. 深入理解建造者模式 ——组装复杂的实例
  5. android中获取某段程序的执行时间
  6. Java 避免精度丢失之BigDecimal 运算
  7. 【bzoj2751】[HAOI2012]容易题(easy) 数论-快速幂
  8. 刚发现Source Insight发布新版本了
  9. LeetCode 之 JavaScript 解答第23题 —— 合并K个有序链表(Merge K Sorted Lists)
  10. 广东春运安保工作提前10天启动