原标题:谈谈CSS之关于clearfix清除浮动

在网上要是你随便一搜"css清除浮动",就会发现很多网站都讲到"盒子清除内部浮动时可以用到.clearfix"。

上图就是.clearfix的定义和应用,简单的说下.clearfix的原理:

1、在IE6, 7下zoom: 1会触发hasLayout,从而使元素闭合内部的浮动。

2、在标准浏览器下,.clearfix:after这个伪类会在应用到.clearfix的元素后面插入一个clear: both的块级元素,从而达到清除浮动的作用。

.clearfix的弊端

在上面的代码中可以看到,抛开IE6, 7不谈,.clearfix在标准浏览器下插入了一个

clear: both的元素,这样很可能清除掉不必要的浮动。如下例子:

上面的代码构成一个两列布局的页面。

注意,menu这个菜单设置了边框,但是由于menu的li元素是左浮动的,导致,menu没有高度,于是可以用.clearfix来清除.menu内部的浮动。代码如下:

重构.clearfix

上面的错误之后,分析一下除了.clearfix:after这种方式之外还有没有别的方法清除元素内部的浮动。

我们可以将.clearfix的display值设为table-cell, table-caption, inline-block中的任何一个,但是display: inline-block会产生多余空白,所以也排除掉。

剩下的只有table-cell, table-caption,为了保证兼容可以用display: table来使.clearfix形成一个Block Formatting Context,因为display: table会产生一些匿名盒子,

这些匿名盒子的其中一个(display值为table-cell)会形成Block Formatting Context。这样我们新的.clearfix就会闭合内部元素的浮动。

下面是重构之后的.clearfix。

责任编辑:

css .clearfix,谈谈CSS之关于clearfix清除浮动相关推荐

  1. html css精灵,谈谈CSS Sprites(css精灵)

    CSS Sprites在国内很多人叫css精灵,其实这个技术不新鲜,这个技术老到什么程度呢,我不敢确定,但是我看到最早的关于CSS Sprites是在Dave Shea的<CSS Sprites ...

  2. 【css】谈谈 css 的各种居中——读编写高质量代码有感

    css 的居中有水平居中和垂直居中,这两种居中又分为行内元素居中和块级元素居中,不同的居中用不同方法. 水平居中 1.行内元素水平居中(文本,图片) 给父层设置 text-align:center; ...

  3. css清除浮动的原理

    最近学习css发现了高度塌陷时候要清除浮动,为了理解清楚浮动原理,网上找了不少资料,发现都写的不是很清楚,而且都是一模一样的内容,我在里分享一下我对清楚浮动原理的理解, 如果你已经很了解什么是浮动和浮 ...

  4. 清除浮动的最佳方案:clearfix

    CSS清除浮动float闭合,很多同学都在使用下面的骨灰级解决办法: .clear{clear:both;} 或者 .clear{clear:both;height:0;overflow:hidden ...

  5. 0基础快速入门CSS技术栈(6)—图解详细阐述说透CSS的浮动及应用、浮动的扩展及清除浮动和详解快速·1photoshop切图(附详细案例源码解析过程)2021-01-07更新

    文章目录 1. 浮动(float)重点提炼 2. CSS 布局的三种机制 3. 为什么需要浮动? 3.1 example01 4. 什么是浮动(float) 4.1 作用 4.1.1 example0 ...

  6. Web前端,CSS中的浮动、清除浮动

    前言 持续总结输出中,今天分享的是Web前端,CSS中的浮动.清除浮动.浮动和清除浮动是我们常用的css样式.今天我们就来了解他们. 1.浮动的作用 早期的作用:图文环绕 现在的作用:网页布局 • 场 ...

  7. CSS中清除浮动的代码

    .clearfix:after {content: "\0020";display: block;height: 0;clear: both; }.clearfix {zoom: ...

  8. CSS学习(05结构伪类选择器 浮动及清除)

    文章目录 一 结构伪类选择器 1.1 作用与优势: 1.2 选择器 1.3 n的注意点 二 伪元素 2.1 区别: 2.2 种类: 2.3 注意点: 三 标准流 四 浮动 4.1 浮动的产生 4.2 ...

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

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

最新文章

  1. C语言生成一个随机的九行九列数独,一个随机生成数独的C++程序
  2. 在Linux上限制远程登陆的IP
  3. Vista下的程序集缓存卸载方法,也就是C:\Windows\assembly之下的卸载方法
  4. LA3027简单带权并查集
  5. SAP ABAP收货或者货物移动(MIGO,MB11,MB1A)在保存时候的增强点
  6. IDOC实例,消息方式的IDOC
  7. ubuntu下面安装Keil uvision4与入门实例
  8. cortex a7 a53_最美轿跑之一的奥迪A7,究竟有何魅力令人一眼定心
  9. 一篇很好的面试文章 程序员面试IT公司的33个小贴士
  10. 网络安全实验室|网络信息安全攻防学习平台(基础关1-12)
  11. 专利服务器拒收 文件异常解压,电子申请专利常见错误总结.pdf
  12. 一个医院为何要架设数字网络时钟系统(电子时钟系统)
  13. 如何让iPhone桌面简洁又不俗气?
  14. UVA - 558 Wormholes (SPEA算法模板题)
  15. 数据挖掘实验二结果(构建cube的三个维度,即三个txt,然后做各种查询)C++实现(代码调试环境为Windows下的CLion使用WSL的Linux)
  16. Swift教程-视频拍摄教程
  17. c#web网页连接数据库产品出库入库数据更新
  18. 110配线架打法图解_110配线架的打线方法图例
  19. RTC实时时钟原理+BKP寄存器
  20. 滑块验证位移识别/识别率95%+

热门文章

  1. 华为eNSP手动修改路由器时区和时间
  2. 让淘宝链接在微信中分享,GO
  3. Oracle SQL Developer 打开文件乱码
  4. 标准输出和标准错误输出
  5. JAVA 中的文件IO使用outputstreamwriter writer 出现乱码的问题。
  6. 一道PL/SQL题:一列数字中随机找出几个使得和等于10
  7. python神经网络编程 豆瓣,python训练神经网络模型
  8. selinux的主要作用
  9. War3快捷键大全—通用快捷键
  10. MAC 安装maven报错,提示:command not found:mvn