当前位置: 首页 > news >正文

清除浮动最有效的css写法

说起来呢,基本上只要你给容器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

转载于:https://www.cnblogs.com/liyouwu/p/9024167.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 基于Docker搭建MySQL主从复制
  • 脑洞篇之我们生活在9维世界
  • Python time 的应用
  • 【剑指offer】面试题 2. 实现 Singleton 模式
  • Go-变量-var
  • 复习mysql
  • 【转载】C/C++内存对齐
  • linux运维、架构之路-MHA高可用方案
  • 线索二叉树实例(前序创建,中序遍历)--2018.5.15
  • vuex填坑记录
  • 多版本并发控制
  • Unity4-用户输入
  • Java Web基础教程(二)开发基础
  • ActiveMq启动后,输入网址出现HTTP ERROR: 503错误的问题
  • 好代码是管出来的——浅谈.Net Core的代码管理方法与落地(更新中...)
  • 【Leetcode】104. 二叉树的最大深度
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Android Volley源码解析
  • ES6 学习笔记(一)let,const和解构赋值
  • JavaScript服务器推送技术之 WebSocket
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • nodejs调试方法
  • rc-form之最单纯情况
  • Web标准制定过程
  • 解析带emoji和链接的聊天系统消息
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 小李飞刀:SQL题目刷起来!
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 进程与线程(三)——进程/线程间通信
  • ​​​【收录 Hello 算法】9.4 小结
  • ​14:00面试,14:06就出来了,问的问题有点变态。。。
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • #13 yum、编译安装与sed命令的使用
  • #if和#ifdef区别
  • #VERDI# 关于如何查看FSM状态机的方法
  • #单片机(TB6600驱动42步进电机)
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (ros//EnvironmentVariables)ros环境变量
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (四)Controller接口控制器详解(三)
  • (四)模仿学习-完成后台管理页面查询
  • (四十一)大数据实战——spark的yarn模式生产环境部署
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .apk文件,IIS不支持下载解决
  • .form文件_一篇文章学会文件上传
  • .htaccess配置重写url引擎
  • .Net 4.0并行库实用性演练
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布