浮动会使当前标签产生上浮的效果,同时会影响到前后的标签、父级标签的位置及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. 关于XSS漏洞的简介以及分类

    不得不说注入的时代已经过去了,最近xss貌似比较热门.我就去恶补了一下,我表示我只是菜鸟,对xss不了解.所以从最基本的学起. 什么xss漏洞? 一.XSS攻击简介 作为一种HTML注入攻击,XSS攻 ...

  2. 决策树 ID3 C4.5 CART(未完)

    1.决策树 :监督学习 决策树是一种依托决策而建立起来的一种树. 在机器学习中,决策树是一种预测模型,代表的是一种对象属性与对象值之间的一种映射关系,每一个节点代表某个对象,树中的每一个分叉路径代表某 ...

  3. WEB前端必备掌握知识

    1.跨域: 跨域问题是由于javascript语言安全限制中的同源策略造成的.

  4. 执行CRUD总结

  5. Python 中的 is 和 == 编码和解码

    一   is   与   ==   区别 ==    比较            比较的是值 例如: a = 'alex' b = 'alex' print(a == b) #True a = 10 ...

  6. ARM六种寻址方式的汇编实现

    AREA Example,CODE,READONLY ENTRY CODE32 ;S 后缀:更新标志位CPSR ;!后缀:基址寄存器中的地址发生变化 ;LDR 从存储器中加载数据到寄存器 ;STR 从 ...

  7. leetcode554

    public class Solution { public int LeastBricks(IList<IList<int>> wall) { ) { ; } ; Dicti ...

  8. jmeter 插件

  9. 面试题:java实例变量,局部变量,类变量 背1

    一.实例变量 也叫对象变量.类成员变量:从属于类由类生成对象时,才分配存储空间,各对象间的实例变量互不干扰,能通过对象的引用来访问实例变量.但在Java多线程中,实例变量是多个线程共享资源,要注意同步 ...

  10. osm2pgsql导入duplicate key error in slim mode

    This is a well known issue and one that is likely not going to be addressed any time soon. While the ...