浮动会使当前标签产生上浮的效果,同时会影响到前后的标签、父级标签的位置及width height 属性。而且同样的代码,在各种浏览器中效果可能不同,这样让清除浮动更难了。清除浮动引起的问题有很多的方法,但有些方法在浏览器兼容性方面还有些问题。

下面总结8种清除浮动的方法:(推荐万能清浮法,后三种不建议使用)

1.给父级div定义height

 原理:给父级div手动定义height,就解决了父级div无法自动获取到高度的问题

 优点:简单、代码少、容易掌握

 缺点:不适合高度固定的布局,要给出精确的高度。不建议使用,只建议在高度固定的布局中使用

2.结尾加空div标签 clear:both 

 原理:添加一个空的div,利用css提高的clear:both清除浮动,让父级div能自动获取到高度

 优点:简单、代码少、浏览器支持好、不容易出问题

 缺点:不少初学者不理解原理,如果页面浮动布局多,就要增加很多空div,让人感觉很不好。

3.父级div定义  伪对象:after 和 zoom(传说中的万能清浮法)

  公式:after{content:".";clear:both;display:block;height:0;overflow:hidden;visibility:hidden;} p{zoom:1};

 原理:IE8以上和非IE浏览器才支持:after,原理和方法2类似,zoom(IE转为属性)可解决IE6,IE7浮动问题

 优点:浏览器支持好、不容易出现怪问题(目前:大型网站都有使用,如:腾讯,网易,新浪等等)

 缺点: 代码多、不少初学者不理解原理,要两句代码结合使用才能让主流浏览器都支持。建议使用,建议定义公共类,以减少css代码。

4.父级div定义overflow:hidden

 原理:必须定义width或zoom:1,同时定义height,使用overflow:hidden时,浏览器会自动检查浮动区域的高度

 优点:简单、代码少、浏览器支持好

 缺点:不能和position配合使用,因为超出的尺寸的都会隐藏。只建议,没有使用position或对overflow:hidden理解比较深的朋友使用。

5.父级元素div定义 overflow:auto

  原理:必须定义width或zoom:1,同时不能定义height,使用overflow:auto时,浏览器会自动检查浮动区域的高度

  优点:简单、代码少、浏览器支持好

  缺点:内部高度超过父级div时,出现滚动条,不建议使用,如果你需要滚动条或者确保你的代码不出现滚动条可以使用,不然出现滚动条会很难看的。

6.父级div也一起浮动

  原理:所有代码一起浮动,就变成一个整体,怎么说呢,这个方法是个鸡肋,意思就是你的一个代码疯了,你把所有的代码都整疯了,他就显的合群了。不建议使用。

  优点:没有优点

  缺点:会产生新的浮动问题

7.父级div定义display:table

  原理:将div属性变成表格

  优点:没有优点

  缺点:会产生新的未知问题

8.结尾加<br>标签clear:both

  原理:父级div定义zoom:1 来解决IE浮动的问题,结尾处加<br>标签clear:both

  建议:不建议使用

  

  

  

    

 

   

 

   

 

css清除浮动的8种方法以及优缺点的更多相关文章

  1. [Web 前端] 018 css 清除浮动的四种方法

    清除浮动的四种方法 加 clear: ...(见例1) 父级上增加属性 overflow:hidden(见例2.1) 在最后一个子元素的后面加一个空的 div,给它一个样式属性 clear: both ...

  2. 活学活用,CSS清除浮动的4种方法

    清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近. CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受. 1.结尾处加空div标签 ...

  3. css清除浮动的几种方法整理

    四种清除浮动方法如下: 1.使用空标签清除浮动.空标签可以是div标签,也可以是P 标签.这种方式是在需要清除浮动的父级元素内部的所有浮动元素后添加这样一个标签 清除浮动,并为其定义CSS代码:cle ...

  4. CSS 清除浮动的4种方法

    此为未清除浮动源代码,运行代码无法查看到父级元素浅黄色背景.<style type=”text/css”> <!– *{margin:0;padding:0;} body{font: ...

  5. CSS 清除浮动的几种方法

    导读: CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列,Float(浮动),往往是用于图像,使得文字围绕图片的效果,而它在布局时一样非常有用.不过有利也有弊,使用浮动 ...

  6. CSS 清除浮动的四种方法

    在实际项目中,我们经常会用到float属性来对页面进行布局.当使用float时,意味着该元素已经脱离了文档流,相当于浮于文档之上,不占据空间.但是针对兄弟元素为文字内容时,会占据一定空间,从而产生文字 ...

  7. css清除浮动的几种方法

    推荐几种好用的清除浮动方法: 方法1: .clearfix:after { content:"."; display:block; height:; clear:both; vis ...

  8. CSS读书笔记(3)---清除浮动的几种方法

    浮动元素容易造成页面错位现象.下面说说关于清除浮动的几种方法. 首先.先创建一个浮动导致错位的页面. <!DOCTYPE html> <html lang="en" ...

  9. [css]浮动-清除浮动的3种方法

    清除浮动的方法: 内墙法 注: 这是个奇淫技巧,没什么原理可言,记住即可 这个技巧又使得父box重新可以被子box撑开高度了. 隔墙法-适用于2个box之间上下排列 由于2个box高度依旧是0, 彼此 ...

随机推荐

  1. Venom的简单使用

    工具地址:https://github.com/r00t-3xp10it/venom 打开到venom目录,输入./venom.sh 打开程序 按回车键继续 这里有很多的模块,要用哪个模块就输入它的编 ...

  2. vue 构建前端项目并关联github

    这几天尝试用node开发一个网站,后端的接口已经初步开发完成,现在开始构建前端的项目,记录下过程,在学习下吧. 用vue-cli 构建项目,myproject.(构架过程略过) 每次在本地构建项目后和 ...

  3. aop计算方法耗时

    package necs.omms.common.aop; import lombok.extern.apachecommons.CommonsLog;import org.apache.common ...

  4. s3c6410存储器映射

    1.引导镜像区 0x0000_0000~0x07FF_FFFF 2.内部存储区 (1) 内部ROM 0x0800_0000~0x0BFF_FFFF (2) 内部SRAM 0x0C00_0000~0x0 ...

  5. Vmware中的centos虚拟机克隆之后没有eth0

    克隆虚拟机之后,CentOS没有eth0的解决办法 我们常常需要从一台已经安装完成的虚拟机系统克隆出来一个新系统(克隆时候必须要改变网卡物理地址,这一点无需多说),但是新系统启动之后,会发现系统网络工 ...

  6. 并发之Striped64(l累加器)

    并发之Striped64(累加器)     对于该类的实现思想:    Striped64是在java8中添加用来支持累加器的并发组件,它可以在并发环境下使用来做某种计数,Striped64的设计思路 ...

  7. C++——多线程

    1.多进程和多线程:进程是一个总任务,一个进程可能包含多个线程. 2.并行和并发: 并发的关键是你有处理多个任务的能力,不一定要同时. 并行的关键是你有同时处理多个任务的能力. 3.共享数据的管理和线 ...

  8. 680. Valid Palindrome II 对称字符串-可删字母版本

    [抄题]: Given a non-empty string s, you may delete at most one character. Judge whether you can make i ...

  9. 重命名Docker容器

    重命名Docker容器: Docker rename [Old container name]  [New container name]

  10. Java中迭代Map的方法

    Map<String, String> mapServlet = new HashMap<String, String>(); System.out.println(" ...