清除浮动的可以用哪几种方法?

网上科普有关“清除浮动的可以用哪几种方法?”话题很是火热,小编也是针对清除浮动的可以用哪几种方法?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够...

网上科普有关“清除浮动的可以用哪几种方法? ”话题很是火热 ,小编也是针对清除浮动的可以用哪几种方法?寻找了一些与之相关的一些信息进行分析 ,如果能碰巧解决你现在面临的问题,希望能够帮助到您。

1 、父级div定义伪类:after和zoom

<style type="text/css">

.div1{background:#000080;border:1px solid red;}

.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}

.left{float:left;width:20%;height:200px;background:#DDD}

.right{float:right;width:30%;height:80px;background:#DDD}

/*清除浮动代码*/

.clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0}

.clearfloat{zoom:1}

</style> <div > <div >Left</div> <div >Right</div> </div><div >

div2 ? </div>

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

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

缺点:代码多,不少初学者不理解原理 ,要两句代码结合使用,才能让主流浏览器都支持

建议:推荐使用,建议定义公共类 ,以减少CSS代码

评分:★★★★☆

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

<style type="text/css">

.div1{background:#000080;border:1px solid red}

.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}

.left{float:left;width:20%;height:200px;background:#DDD}

.right{float:right;width:30%;height:80px;background:#DDD}

/*清除浮动代码*/

.clearfloat{clear:both}

</style> <div > <div >Left</div> <div >Right</div><div ></div></div><div >

div2 ? </div>

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

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

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

建议:不推荐使用,但此方法是以前主要使用的一种清除浮动方法

评分:★★★☆☆

3.父级div定义height

<style type="text/css">

.div1{background:#000080;border:1px solid red;/*解决代码*/height:200px;}

.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px}

.left{float:left;width:20%;height:200px;background:#DDD}

.right{float:right;width:30%;height:80px;background:#DDD}

</style> <div > <div >Left</div> <div >Right</div> </div><div >

div2 ? </div>

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

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

缺点:只适合高度固定的布局,要给出精确的高度 ,如果高度和父级div不一样时,会产生问题

建议:不推荐使用,只建议高度固定的布局时使用

评分:★★☆☆☆

4.父级div定义overflow:hidden

<style type="text/css">

.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:hidden}

.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}

.left{float:left;width:20%;height:200px;background:#DDD}

.right{float:right;width:30%;height:80px;background:#DDD}

</style> <div > <div >Left</div> <div >Right</div></div><div >

div2 ? </div>

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

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

缺点:不能和position配合使用,因为超出的尺寸的会被隐藏

建议:只推荐没有使用position或对overflow:hidden理解比较深的朋友使用

评分:★★★☆☆

5.父级div定义overflow:auto

<style type="text/css">

.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;overflow:auto}

.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px;width:98%}

.left{float:left;width:20%;height:200px;background:#DDD}

.right{float:right;width:30%;height:80px;background:#DDD}

</style> <div > <div >Left</div> <div >Right</div></div><div >

div2 ? </div>

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

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

缺点:内部宽高超过父级div时,会出现滚动条 。

建议:不推荐使用,如果你需要出现滚动条或者确保你的代码不会出现滚动条就使用吧 。

评分:★★☆☆☆

6.父级div也一起浮动

<style type="text/css">

.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;margin-bottom:10px;float:left}

.div2{background:#800080;border:1px solid red;height:100px;width:98%;/*解决代码*/clear:both}

.left{float:left;width:20%;height:200px;background:#DDD}

.right{float:right;width:30%;height:80px;background:#DDD}

</style> <div > <div >Left</div> <div >Right</div></div><div >

div2 ? </div>

原理:所有代码一起浮动 ,就变成了一个整体

优点:没有优点

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

建议:不推荐使用,只作了解。

评分:★☆☆☆☆

7.父级div定义display:table

<style type="text/css">

.div1{background:#000080;border:1px solid red;/*解决代码*/width:98%;display:table;margin-bottom:10px;}

.div2{background:#800080;border:1px solid red;height:100px;width:98%;}

.left{float:left;width:20%;height:200px;background:#DDD}

.right{float:right;width:30%;height:80px;background:#DDD}

</style> <div > <div >Left</div> <div >Right</div></div><div >

div2 ? </div>

原理:将div属性变成表格

优点:没有优点

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

建议:不推荐使用,只作了解

评分:★☆☆☆☆

8 、结尾处加br标签clear:both

<style type="text/css">

.div1{background:#000080;border:1px solid red;margin-bottom:10px;zoom:1}

.div2{background:#800080;border:1px solid red;height:100px}

.left{float:left;width:20%;height:200px;background:#DDD}

.right{float:right;width:30%;height:80px;background:#DDD}

.clearfloat{clear:both}

</style> <div > <div >Left</div> <div >Right</div><br /></div><div >

div2 ? </div>

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

建议:不推荐使用,只作了解

评分:★☆☆☆☆

在非IE浏览器(如Firefox)下,当容器的高度为auto ,且容器的内容中有浮动(float为left或right)的元素 ,在这种情况下,容器的高度不能自动伸长以适应内容的高度,使得内容溢出到容器外面而影响(甚至破坏)布局的现象 。这个现象叫浮动溢出 ,为了防止这个现象的出现而进行的CSS处理,就叫CSS清除浮动。

清除浮动方法:

1、使用带clear属性的空元素

在浮动元素后使用一个空元素如<div ></div>,并在CSS中赋予.clear{clear:both;}属性即可清理浮动。亦可使用<br />或<hr />来进行清理 。

2、使用CSS的overflow属性

给浮动元素的容器添加overflow:hidden;或overflow:auto;可以清除浮动 ,另外在 IE6 中还需要触发 hasLayout ,例如为父元素设置容器宽高或设置 zoom:1。在添加overflow属性后,浮动元素又回到了容器层 ,把容器高度撑起,达到了清理浮动的效果。

3 、给浮动的元素的容器添加浮动

给浮动元素的容器也添加上浮动属性即可清除内部浮动,但是这样会使其整体浮动 ,影响布局,不推荐使用 。

4、使用邻接元素处理

什么都不做,给浮动元素后面的元素添加clear属性。

5、方法五:使用CSS的:after伪元素

给浮动元素的容器添加一个clearfix的class ,然后给这个class添加一个:after伪元素实现元素末尾添加一个看不见的块元素(Block element)清理浮动。

需要注意的是为了IE6和IE7浏览器 ,要给clearfix这个class添加一条zoom:1;触发haslayout 。

总结

BFC清理浮动

通用的清理浮动法案

.clearfix{

*zoom:1;

}

.clearfix:after{

content:".";

display:block;

height:0;

visibility:hidden;

clear:left;

}

.clearfix{

*zoom:1;

}

.clearfix:after{

content:"";

display:table;

clear:both;

}

关于“清除浮动的可以用哪几种方法? ”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!

本文来自作者[白亦]投稿,不代表石号立场,如若转载,请注明出处:https://s0429.com/cshi/202512-2230.html

(156)

文章推荐

  • 六年级科学知识点汇总

    网上科普有关“六年级科学知识点汇总”话题很是火热,小编也是针对六年级科学知识点汇总寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。什么是学霸,就是擅长学习,且每门学科成绩分数都很高的学生。‘这里,小宋想重点强调的是一个词“每门”。然而,在小学的课程当中,就

    2024年12月15日
    92
  • 名人传记名人小时候故事英文翻译

    网上有关“名人传记名人小时候故事英文翻译”话题很是火热,小编也是针对名人传记名人小时候故事英文翻译寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。Celebritystory周恩来小时候的故事ZhouEnlaistory鸡叫三遍过后,周家花园里传出了阵阵

    2024年12月15日
    93
  • 核酸异常后该怎么做(核酸检测发现异常会怎么样)

    天津多管社会面核酸样本异常,目前样本异常人员都采取了哪些紧急管控措施...1、目前天津地区呈现了多管核酸检测呈现了异常情况,目前天津对异常人员进行了紧急隔离措施,然后对所在区域的人员进行了静默管理的措施并落实到每人都要检测的控制措施,可以看出天津的疫情防控还是做得非常严格的,在出现异常情况下采取了

    2025年11月23日
    37
  • 31省区市新增本土确诊13例(31省区市新增确诊12例本土4例)

    山东3月20日新增13+286,滨州疫情牵动齐鲁大地1.02亿人的心山东3月20日新增本土确诊病例13例,本土无症状感染者286例,滨州疫情防控形势严峻,成为全省关注焦点。截止2022年3月20日24时,山东全省新增本土确诊病例13例,新增本土无症状感染者286例。具体情况如下:新增本土确诊病例:

    2025年11月25日
    37
  • 郑州疫情封锁令(郑州疫情封锁令是真的吗)

    双汇屠宰场猪瘟疫点现在什么情况?郑州双汇屠宰场猪瘟疫点:设多个消杀点,24小时执勤。屠宰场大门发生生猪非洲猪瘟疫情后,位于郑州市经济技术开发区的双汇屠宰厂,平时行政人员进出的北大门已被铁皮封住,墙上贴有郑州市政府《疫区封锁令》。8月20日中午,实地探访发现,厂区周边设有多个消杀点,工作人员24小

    2025年11月26日
    38
  • 31省区市新增确诊7例本土1例(31省区市新增确诊76例本土40例)

    31省区市新增本土确诊1例在哪里?月5日0—24时,全国新增确诊病例18例,其中本土病例1例(在天津),境外输入病例17例。具体分布与相关情况如下:新增确诊病例整体情况31个省(自治区、直辖市)和新疆生产建设兵团报告新增确诊病例18例。无新增死亡病例。新增疑似病例2例,均为境外输入病例(均在上海)

    2025年11月26日
    34
  • 武汉新增4例本土确诊病例(武汉新增4例确诊详情)

    武汉通报5例新增确诊病例详情:均来自同一小区月10日0-24时,武汉市新增的5例新冠肺炎确诊病例均来自东西湖区长青街三民小区,具体详情如下:病例1:王某某,女,81岁,系5月9日武汉市通报确诊病例高某某的妻子。5月7日其丈夫高某某核酸检测阳性,她当日作为密切接触者被安排隔离并做核酸检测,结果为

    2025年11月29日
    26
  • 浙江3地新增确诊43例(浙江省新增3例)

    12月1日11-17时杭州新增43例新冠病毒无症状感染者1、月1日11-17时,杭州新增43例新冠病毒无症状感染者,16例为集中隔离点检出,14例为卡口拦截发现,7例为社区筛查发现,6例为居家隔离发现。无症状感染者40:省外返杭人员,现住址为萧山区晨悦湾,居家隔离发现。无症状感染者41:省外返杭人

    2025年12月01日
    12
  • 在CSS中如何设置一个按钮鼠标划过变颜色。_1

    网上科普有关“在CSS中如何设置一个按钮鼠标划过变颜色。”话题很是火热,小编也是针对在CSS中如何设置一个按钮鼠标划过变颜色。寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。要为CSS中的按钮设置鼠标划过变色效果,首先确保你具备以下工具:电脑、浏览器和一个HT

    2025年12月07日
    131
  • 山西省昨日疫情情况(山西疫情最新情况今日新增在哪)

    疫情的具体情况1、广州疫情出现反弹,4月8日以来发生新的本土疫情,截至4月10日14时累计报告感染者23例,存在社区隐匿性传播风险,需加强防护与配合防控措施。以下为具体情况及应对建议:疫情基本情况感染者数量与区域分布:4月9日0时至4月10日14时,新增22例新冠病毒感染者,累计报告23例。2

    2025年11月26日
    36

发表回复

本站作者后才能评论

评论列表(4条)

  • 白亦
    白亦 2025年12月08日

    我是石号的签约作者“白亦”!

  • 白亦
    白亦 2025年12月08日

    希望本篇文章《清除浮动的可以用哪几种方法?》能对你有所帮助!

  • 白亦
    白亦 2025年12月08日

    本站[石号]内容主要涵盖:国足,欧洲杯,世界杯,篮球,欧冠,亚冠,英超,足球,综合体育

  • 白亦
    白亦 2025年12月08日

    本文概览:网上科普有关“清除浮动的可以用哪几种方法?”话题很是火热,小编也是针对清除浮动的可以用哪几种方法?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够...