说起来呢,基本上只要你给容器div加了float的属性,就需要清除浮动来使页面显示正常,那么,到底有什么方法可以让浮动轻松清除呢? 
可以用display:flex;替代,但是它对IE8,9支持不是很好,所以不怎么这么用。

1.在容器div的里面结束标记之前写如下这样的div这段代码:

<div style="clear:both"></div>

虽然通俗易懂,容易掌握,但是在页面中加入了一个无意义的空标签,违背了结构和表现分离的web标准的精髓,如果页面空标签多的话,对于后期的维护会造成一定的困难。一般来说,现在已经不采用这种方法。

2.在浮动容器div的css样式中加入overflow属性。

3.将父元素也变成浮动元素,但是影响整个页面的布局,不推荐使用。

4.使用:after伪元素,一般增加clearfix的class,大概写法如下:

.clearfix:after{
content:".";/*加一段内容*/
display:block;/*让生成的元素以块级元素显示,占满剩余空间*/
height:0;/*避免生成的内容破坏原有布局高度*/
clear:both;/*清除浮动*/
visibility:hidden;/*让生成的内容不可见*/
}
.clearfix{zoom:1;/*为IE6,7的兼容性设置*/}

除了clear:both;是为了清除浮动以外,其他的属性就是为了隐藏这个元素,所以我们对它进行了改进一下:

 .clearfix:after,.clearfix:before{
content:".";/*加一段内容*/
display:table;/*创建匿名的表格单元,触发bfc*/
}
.clearfix:after{
clear:both;/*清除浮动*/
}
.clearfix{zoom:1;/*为IE6,7的兼容性设置*/}

.clearfix:before,加上before,对清除浮动没什么作用,防止浏览器顶部空白崩溃,也就是说,margin-top和上一个盒子的margin-bottom它们会发生一个叠加,这么做就是防止叠加,其实没有这个需要,去掉before也没啥问题。 
原理和第一种方法差不多,就是用clear:both;

使用的原理基本上就是触动bfc, 
bfc:block formating contexts 块级格式化上下文 
比如下面这些就是: 
float:left; 
overflow:auto; 
display:table-cell; 
display:table-caption; 
display:inline-block; 
position:fixed; 
position:absolute;

目前就是用最后的一种方式来进行清除浮动,毕竟优雅~~~

原文地址:https://blog.csdn.net/u012396955/article/details/60341523

清除浮动最有效的css写法的更多相关文章

  1. 父类清除浮动的原因、(清除浮动代码,置于CSS中方便调用)

    浮动因素在静态网页制作中经常被应用到,比如要让块级元素不独占一行,常常应用设置float的方式来实现.但是应用的时候会发现,设置了子类浮动后,未给父类清除浮动,这样就会造成一下问题: 1.浮动的元素会 ...

  2. CSS清除浮动技巧

    一般浮动是什么情况呢?一般是一个盒子里使用了CSS float浮动属性,导致父级对象盒子不能被撑开,这样CSS float浮动就产生了. 本来两个黑色对象盒子是在红色盒子内,因为对两个黑色盒子使用了f ...

  3. css用clearfix清除浮动

    本文从http://www.studyofnet.com/news/196.html复制.   本文导读:写css 时总为浮动而烦恼,如果用了浮动,浮动的父层不会跟着浮动框的高度增加而增加,在Fire ...

  4. [转]CSS clear both清除浮动

    DIV+CSS clear both清除产生浮动 我们知道有时使用了css float浮动会产生css浮动,这个时候就需要清理清除浮动,我们就用clear样式属性即可实现. 接下来我们来认识与学习cs ...

  5. 详说 CSS 清除浮动

    转自:http://kayosite.com/remove-floating-style-in-detail.html 浮动,从诞生那天起,它就是个特别的属性——既为网页布局带来新的方法,却又随之产生 ...

  6. CSS clear both清除浮动总结

    我们知道有时候使用了CSS float浮动,会产生CSS浮动,这个时候就需要清理浮动,我们就用clear样式属性即可实现. 接下来我们来认识与学习CSS clear知识与用法. clear清除浮动目录 ...

  7. 清除浮动clearfix

    css用clearfix清除浮动 更多2013/11/4 来源:css学习浏览量:11901 学习标签: css clearfix 本文导读:写css 时总为浮动而烦恼,如果用了浮动,浮动的父层不会跟 ...

  8. 前端面试题常考&必考之--清除浮动的方法

    浮动 问题:子元素设置了float后,脱离父元素,导致父元素无法撑开?(也就是子元素的高度没有过渡到父元素) 例子: 检查元素的效果: (三种)常用的解决办法: 1>额外标签法,添加一个空的di ...

  9. 细微之处:比较两种CSS清除浮动的兼容

    http://www.cnblogs.com/bienfantaisie/archive/2011/05/27/2059597.html 清除浮动是连续浮动元素之后的必备工作,在工作中我做到需要清除浮 ...

随机推荐

  1. 推荐系统之隐语义模型LFM

    LFM(latent factor model)隐语义模型,这也是在推荐系统中应用相当普遍的一种模型.那这种模型跟ItemCF或UserCF的不同在于: 对于UserCF,我们可以先计算和目标用户兴趣 ...

  2. springCloud的使用08-----服务链路追踪(sleuth+zipkin)

    sleuth主要功能是在分布式系统中提供追踪解决方案,并且兼容支持了zipkin(提供了链路追踪的可视化功能) zipkin原理:在服务调用的请求和响应中加入ID,表明上下游请求的关系. 利用这些信息 ...

  3. HDU 6469 /// 二分

    题目大意: 分裂怪有1到n种等级, 第1级的分裂怪称为原子怪,它不会分裂,被击杀时会产生a[1]点经验: 而第k级的分裂怪死亡时则会分裂成a[k]个第k - 1级的分裂怪. 一个体力可以杀死一个怪物. ...

  4. poj3264 Balanced Lineup(树状数组)

    题目传送门 Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 64655   Accepted: ...

  5. 如何从零搭建一个webpack+react+redux+react-redux的开发环境一入门

    阅读本文章的时候,你要有一定的基础知识储备,简单的es6知识,模块化思想知识,js基础知识,node基础知识,react等 首先执行npm init,此时我的文件叫case; 下面安装一些需要的npm ...

  6. Flask配置方法

    flask应用的配置(使用uWSGI和Nginx在CentOS 7上搭建) 基础的Nginx 数据库等配置省略 创建python虚拟环境 sudo pip install virtualenv mkd ...

  7. dubbo服务调试管理实用命令

    公司如果分项目组开发的,各个项目组调用各项目组的接口,有时候需要在联调环境调试对方的接口,可以直接telnet到dubbo的服务通过命令查看已经布的接口和方法,并能直接invoke具体的方法,我们可以 ...

  8. http请求访问响应慢问题解决的基本思路

    第一步,检查网络 ping命令检查网络域名解析是否正常,ping服务器的延迟是否过大,如果过大可以检查Ip是否冲突,或者交换机网线是否正常插好,通过nmon还可以查看网络流量,一般用的千兆交换机理论速 ...

  9. maven更换下载镜像源-解决下载慢问题(转)

    转自:http://www.cnblogs.com/duking1991/p/6110192.html maven更换下载镜像源-解决下载慢问题   Maven是当前流行的项目管理工具,但官方的库在国 ...

  10. 在迭代一个集合的时候,如何避免ConcurrentModificationException?

    在遍历一个集合的时候,我们可以使用并发集合类来避免ConcurrentModificationException,比如使用CopyOnWriteArrayList,而不是ArrayList.