两种好用的清除浮动的小技巧(clearfix hack)

方法一:使用内容生成的方式清除浮动

这种方法不能解决margin在垂直边界上的叠加问题,如果不涉及margin的边界叠加问题使用这种方法清除浮动就行了 。

 1 /*
 2 :after 选择器向选定的元素之后插入内容
 3 content:" "; (注意这里有一个空格)生成内容为空
 4 display: block;
 5 clear:both; 清除前面元素浮动带来的影响
 6 */
 7 .clearfix:after {
 8    content:"";
 9    display: block;
10    clear:both;
11 }

方法二:使用伪元素方式清除浮动

bootstrap3.3.7中就使用这种方法清除浮动,这种方法代码比第一种多一点,不过它能解决margin在垂直边界上的叠加问题。

盒子模型垂直方向的距离由margin决定。属于同一个BFC(Block formatting context直译为”块级格式化上下文”)的两个相邻盒子的margin会发生重叠 
注意:发生重叠后,外边距的高度等于两个发生重叠的外边距的高度中的较大者。至于margin的边界重叠和BFC的问题有很多资料可查我就不再赘述了。

 1 /*
 2 浏览器支持: Firefox 3.5+, Safari 4+, Chrome, Opera 9+, IE 8+
 3 1.  content:" ";(注意这里有一个空格)是为了避免Opera Bug的一种方法。
 4 当contenteditable这个属性包含在document中的任何地方时会导致空格符出现在元素的顶部和底部,这些空格符是需要清除的。
 5 2.  当‘:before‘需要包含其子元素的margin-top时,使用‘table‘替代‘block‘。
 6 */
 7 .clearfix:before,
 8 .clearfix:after {
 9     content: " "; /* 1 */
10     display: table; /* 2 */
11 }
12
13 .clearfix:after {
14     clear: both;
15 }

备注:

这两种方法都不破坏文档结构也没有什么副作用兼容性也好,网上也有其他清除浮动的方法,不过都有些弊端,这两种相对更好一些。

参考文献:

清除浮动 的多种方式(clearfix):https://blog.csdn.net/FE_dev/article/details/68954481

A new micro clearfix hack:http://nicolasgallagher.com/micro-clearfix-hack/

原文地址:https://www.cnblogs.com/codebook/p/9966882.html

时间: 2024-12-29 12:44:55

两种好用的清除浮动的小技巧(clearfix hack)的相关文章

使用OC和Swift两种语言写一个发射烟花的小项目

OC与Swift两种实现方式基本上区别不大,主要是在一些对象或方法的调用方式不同 OC代码样式: self.view.backgroundColor = [UIColor blackColor]; //加载颗粒状的火花图片 CAEmitterLayer *emitterLa = [CAEmitterLayer layer]; emitterLa.emitterPosition = CGPointMake(self.view.bounds.size.width/2, self.view.bound

表单单选多选项清除默认样式小技巧

工作中做项目都会遇到表单 单选.多选项的样式问题,对于一个刚入行的菜鸟来说,可能不知道如何修改很low的选项默认样式,下表给初学者提供了改变默认样式的小技巧 首先要清除默认样式,非常简单的css: input{-webkit-user-select:text;-ms-user-select:text;user-select:text;-webkit-appearance:none;font-size:1em;line-height:1.5em;list-style:none;} input{ou

CSS——如何清除浮动

众所周知,平时在写HTML代码时,难免少不了使用Float样式,这样一来,假使您没有清除浮动,那么有浮动元素的父元素容器将元素将无法自动撑开.换句简单好理解的话来说,假如你在写CODE时,其中div.A(这个就是说页面中有一个div,并且把其命名为class="A")中包含了两个或多个子元素div.B,div.C,div.D(这里我以三个为例),并且此时div.B和div.C进行浮动,而div.D不进行任何浮动,此时你可以看到父元素div.A高度仅靠div.D来撑开其高度,如果您将di

清除浮动塌陷的4种经典套路

原文地址;http://www.cnblogs.com/chedabang/p/5973601.html "自古深情留不住,总是套路得人心."这些日子,各个朋友圈随时可以见到这句话的身影.的确人们常说:"多一点真诚,少一点套路.",但是最终现象写实也是那么残酷和无奈. 同样在前端攻城狮的道路,我们都是真诚尽心尽力的去学习进取.奈何先是各大浏览器厂商的大战不断,导致我们这群学习的人苦不堪言,一片水生火热呀.不得不想进各种hack方法解决.(没错,这里就是吐槽的IE6!

转载-常用的清除浮动的方法有以下三种:

常用的清除浮动的方法有以下三种: 此为未清除浮动源代码,运行代码无法查看到父级元素浅黄色背景. <style type=”text/css”> <!– *{margin:0;padding:0;} body{font:36px bold; color:#F00; text-align:center;} #layout{background:#FF9;} #left{float:left;width:20%;height:200px;background:#DDD;line-height:

浮动 清除浮动(造成的影响)

一.浮动 CSS浮动    CSS float浮动的深入研究.详解及拓展(一)    CSS浮动属性Float详解 块级元素独占一行 块级元素,在页面中独占一行,自上而下排列,也就是传说中的流. 可以看出,即使div1的宽度很小,页面中一行可以容下div1和div2,div2也不会排在div1后边,因为div元素是独占一行的. 注意,以上这些理论,是指标准流中的div.无论多么复杂的布局,其基本出发点均是:“如何在一行显示多个div元素”. 浮动 浮动:浮动的框可以左右移动,直至它的外边缘遇到包

如何进行清除浮动

针对如何清除浮动,是对受影响的元素中添加清除浮动样式,即可做到清除浮动: 部分代码如下: <div style="float:left;'>向左浮动了</div> <p style="">我要被影响了呀</p> 由于div向左浮动,P标签会跟随着DIV,因此要想P标签另起一行,可用如下方法: 1.clear:both; 2.width:100%,overflow:hidden;//这个要两个一起用才能清除浮动 如有博友有其他心得

CSS清除浮动常用方法小结 CSS clear both {overflow:auto;zoom:1;}

常用的清除浮动的方法有以下三种: 此为未清除浮动源代码,运行代码无法查看到父级元素浅黄色背景 <!DOCTYPE html><html><head> <meta charset="utf-8"/> <title></title> <style type="text/css"> * { margin: 0; padding: 0; } body { font: 36px bold; c

用哪些方法可以清除浮动

"Reloaded" clearfix CSS Mojo 的 Thierry Koblentz' 写了另一篇文章来重新审视清除浮动,强有力地证明了使用 display: block 不会禁用外边距重叠,这比使用 display: table 更有优势. 最新的 micro-clearfix 代码: .container::after {   content: ""; /* If you do not care for "old" Opera */