清除浮动(clearfix hack) 在使用浮动的时候经常会遇到一个古怪的事情: img { float: right; }
原文:clearfix Reloaded + overflow:hidden Demystified clearfix 和 overflow:hidden 可算得上是不增加额外标签清除浮动的两个最流行的技术了 clearfix 曾经在网上流行的一种clearfix的方法: .clearfix:after { content: ". know about clearfix is wrong 中,他介绍了这种方法在跨浏览器兼容时会造成的问题,并建议仅对不邻近浮动元素的元素应用clearfix(例如弹出窗口),尽管这样做我们还需要处理由 clearfix造成的边距折叠bug(译者注:指clearfix的盒子内部元素的垂直边距被扩展到盒子之外)。 因此,为了创建跨浏览器兼容的同样的盒模型布局,我们可以把原来的清除浮动的方法改良一下,采用伪类:before 和 :after: .clearfix:before, .clearfix:after {
*/ .clearfix:after{content:"." ;display:block;height:0;clear:both;visibility:hidden} .clearfix{*+height:1%;}/*不知道有什么用处,不加ie7也没有问题 */ .clearfix:after{content:"." ;display:block;height:0;clear:both;visibility:hidden} .clearfix{*+height:1%;}/*不知道有什么用处,不加ie7 width:100px; height:100px;background:#999;position:absolute;right:-50px;;} </style> <div class="box <em>clearfix</em>
.clearfix:after { content: ". "; display: block; height: 0; clear: both; visibility: hidden; } .clearfix {display : inline-block;} /* Hides from IE-mac \*/ * html .clearfix {height: 1%;} .clearfix {display: block;}
也会被一同隐藏 方案5 父元素设置display:table 优势:不影响结构与表现的分离,语义化正确,代码量少 弊端:盒模型属性已经改变,会造成其他问题 方案6 使用内容生成的方式清除浮动 .clearfix
我们都知道clearfix一般这么写: .clearfix:before,.clearfix:after{ content:""; display:table; } .clearfix: 曾经也搜索过这个问题,感觉都讲得糊里糊涂的还是我水平太低了,反正我是看不懂他们想要表达啥意思,也不给例子,好了,废话不多说, 看结果吧: See the Pen Clearfix by wenjie (
文章目录 一、清除浮动 - 使用双伪元素清除浮动 二、代码示例 一、清除浮动 - 使用双伪元素清除浮动 ---- 为 .clearfix:before 和 .clearfix:after 并集选择器 , 设置如下样式 : /* 清除浮动 - 使用双伪元素清除浮动 */ .clearfix:before, .clearfix:after { content: ""; display : table; } 为 .clearfix:after 伪类选择器设置如下样式 : .clearfix:after 伪元素选择器 的含义是 在 该父容器盒子 的内部 , 插入新的子元素 , 该子元素设置选择器中的样式 ; .clearfix:after { clear: both; } 低版本浏览器 IE6 / IE7 清除浮动样式 : .clearfix { *zoom: 1; } 声明完上述元素后 , 在需要清除浮动元素的 父容器 中 , 声明 clearfix 类 ;
{ *zoom: 1; } 如果需要 清除某个父容器中子元素的浮动样式 , 在该父容器的 class 类型上 , 添加 clearfix 类型即可 , 如 : <div class=" 也不会出现隐藏移除元素的问题 ; 6、清除浮动 语法 - 使用双伪元素清除浮动 为 .<em>clearfix</em>:before 和 .<em>clearfix</em>:after 并集选择器 , 设置如下样式 : /* 清除浮动 - 使用双伪元素清除浮动 */ .<em>clearfix</em>:before, .<em>clearfix</em>:after { content: ""; display: table; } 为 .clearfix :after 伪类选择器设置如下样式 : .clearfix:after 伪元素选择器 的含义是 在 该父容器盒子 的内部 , 插入新的子元素 , 该子元素设置选择器中的样式 ; .clearfix 父容器 中 , 声明 clearfix 类 ;
主要代码 清楚浮动 .decimal { font-family: HelveticaNeueLt, 'Microsoft YaHei', SimHei; font-size: 14px; } .clearfix :before, .clearfix:after { display: table; content: ""; } .clearfix:after { clear: both; } .clearfix { zoom: 1; } .clearfix:after { content: ""; display: block; height: 0; clear: both; visibility : hidden; } 解决盒子塌陷问题 .clearfix { display: inline-table; } *html .clearfix { height: 1%; } .clearfix { display: block; } *+html .clearfix { min-height: 1%; } 公共样式 .tc { text-align: center !
"]/a/div[@class="job-title clearfix"]/span[@class="job-name"]').text # 获取公司位置 job_address = div "]/a/div[@class="job-title clearfix"]/span[@class="job-area-wrapper"]/span[@class="job-area"]').text "]/a/div[@class="job-info clearfix"]/span[@class="salary"]').text # 确认工作经验所属位置 work_experience "]/a/div[@class="job-info clearfix"]/div[@class="info-public"]/em').text # 将招聘人员加招聘人员职位中剔除招聘人员职位, "]/a/div[@class="job-title clearfix"]/span[@class="job-area-wrapper"]/span[@class="job-area"]').text
[代码]clearfix 清除浮动 .clearfix:after { content: ". "; display: block; height: 0; font-size: 0; clear: both; visibility: hidden; } .clearfix { zoom: 1; [代码]clearfix的另一种写法 .clearfix:after { content: ". { display: inline-block; } html[xmlns] .clearfix { display: block; } * html .clearfix { height: 1%; } 3.贴上bootstrap里面的clearfix的写法 .clearfix { zoom: 1; } .clearfix:before,.clearfix:
'Chrome/76.0.3809.132 Safari/537.36' } # 新浪新闻首页 每日要闻、重点新闻 id="wrap" > class="part_01 clearfix res.encoding = 'utf-8' part_01_clearfix = re.findall('
.clearfix:after { content : ""; display: block; height: 0; clear : both; visibility: hidden; } .clearfix { /*IE6、7专有*/ *zoom: 1; } 写好如上的CSS样式后,直接给浮动元素的父元素添加 **class=“clearfix”**类就可以了,注意,这里的类名不一定是clearfix,只不过是界内约定俗成的规范,遵守就可以了。 .clearfix:before, .clearfix:after { content: ""; display: table; } .clearfix:after { clear: both; } .clearfix { *zoom: 1; } 写好如上CSS样式后直接给浮动元素的父元素添加**class=“clearfix
> div.leftBox > div.col-cont.title-box > h1'tmSel = '#wrapper > div.content.clearfix > div.leftBox > div.col-cont.title-box > div > ul.title-info-l.clearfix > li > i'tpSel = '#wrapper > div.content.clearfix > div.leftBox > div > div > ul > li > span > a'pcSel = '#wrapper > div.content.clearfix > div.leftBox > div.leftBox > div.col-cont.title-box > h1'tmSel = '#wrapper > div.content.clearfix > div.leftBox > div.col-cont.title-box > div > ul.title-info-l.clearfix > li > i'tpSel = '#wrapper > div.content.clearfix
:after , 其中的 :after 是伪元素 , /* 清除浮动元素样式 */ .clearfix:after { content: ""; display: block; } 这种方式只有在 高版本浏览器才支持 , 低版本浏览器不支持该设置 , 为了兼容低版本浏览器 , 需要使用下面的样式 : /* 低版本浏览器 IE6 / IE7 清除浮动样式 */ .clearfix { *zoom: 1; } 如果需要 清除某个父容器中子元素的浮动样式 , 在该父容器的 class 类型上 , 添加 clearfix 类型即可 , 如 :
清除浮动的方法 额外标签法,在最后一个浮动元素后面添加一个空的标签代码:
使用after伪元素进行清除浮动. .clearfix:after { content: ""; display: block; height: 0; clear: both; visibility: hidden; } .clearfix { *zoom : 1; } 进行双伪元素清除浮动 .clearfix:before, clearfix:after { content: ""; display: table; // 可以清除浮动 } .clearfix {*zoom: 1;} // 使用before和after双伪元素清除浮动 .clearfix:before,.clearfix:after { content:""; display:table ; } .clearfix:after { clear:both; } .clearfix { *zoom:1; } 元素的显示与隐藏 display 显示 display : none 隐藏对象请看如下代码: // 现代浏览器clearfix方案,不支持IE6/7.clearfix:after { display: table; content: " "; clear: both; }// 全浏览器通用的clearfix方案// 引入了zoom以支持IE6/7.clearfix:after { display: table; content: " "; clear: both; } .clearfix{ *zoom: 1; }// 全浏览器通用的clearfix方案【推荐】// 引入了zoom以支持IE6/7// 同时加入:before 以解决现代浏览器上边距折叠的问题.clearfix:before, .clearfix:after { display: table; content: " "; } .clearfix clearfix清除浮动 一句话,强烈推荐clearfix的方式清除浮动! BFC清除浮动 BFC全称是块状格式化上下文,它是按照块级盒子布局的。我们了解他的特征、触发方式、常见使用场景这些就够了。
.clearfix:after,.clearfix:before{ content: "";display: table;} .clearfix:after{ clear:both;} .clearfix 可以使用之前在解决margin-top塌陷时候的clearfix样式来试试。 使用clearfix是公认最好的方式,那么这里可以把之前解决margin-top塌陷问题的clearfix部分样式进行合并,到最后就可以统一解决问题了。 合并clearfix样式 .clearfix:before{ content: ""; display: table; } 需要添加兼容样式,如下: .clearfix{zoom:1;} 最后合并如下: .clearfix:before,.clearfix:after{ content
-- shadow="never" -->