蓝戒博客

  • 首页
  • 研发说
  • 架构论
  • 效能录
  • AI谈
  • 随笔集
智构苍穹
融合 AI、架构与工程实践,沉淀方法论,构建可持续的技术价值。
  1. 首页
  2. 研发说
  3. 正文

css清除浮动方法及优缺点解析

2015年4月3日 5876点热度 0人点赞 0条评论
清除浮动

清除浮动

清除浮动是web前端工程师的必修课,下面就清除浮动的方法进行归纳整理及优缺点分析

方法一:DIV闭合处,加<div class=”clear”></div> (.clear{clear:both})

代码如下:
<div class=”div1″>
<div class=”left”>我是左浮动</div>
<div class=”right”>我是右浮动</div>
<div class=”clear”></div>
</div>

<div class=”div2″>我是div2</div>

原理:添加一对空的DIV标签,利用css的clear:both属性清除浮动,让父级DIV能够获取高度。
优点:浏览器支持好
缺点:多出了很多空的DIV标签,如果页面中浮动模块多的话,就会出现很多的空置DIV了,这样感觉视乎不是太令人满意。(不推荐使用)

方法二:结尾处加 br标签<br class=”clear”/> (.clear{clear:both})

代码如下:
<div class=”div1″>
<div class=”left”>我是左浮动</div>
<div class=”right”>我是右浮动</div>
<br class=”clear” />
</div>

<div class=”div2″>我是div2</div>

原理及有优缺点同方法1,可做了解,亦不推荐使用。

方法三:父元素设置 overflow:hidden;zoom:1
<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>
原理:通过设置父元素overflow值设置为hidden;在IE6中还需要触发 hasLayout(zoom:1)
优点:代码简介,不存在结构和语义化问题
缺点:无法显示需要溢出的元素(亦不太推荐使用)

方法四:父元素设置 overflow:hidden;zoom:1
原理:原理同方法6,在IE6中还需要触发 hasLayout(zoom:1)
优点:代码简介,不存在结构和语义化问题
缺点:firefox早期版本会无故产生focus,多个嵌套后,firefox某些情况会造成内容全选;IE中 mouseover 造成宽度改变时会出现最外层模块有滚动条等。

方法五:给父级div定义 高度
代码如下:
<style type=”text/css”>
.div1{background:#000;border:1px solid red; /*解决代码*/height:200px;}

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

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

< /style>

<div class=”div1″>
<div class=”left”>我是左浮动</div>
<div class=”right”>我是右浮动</div>
</div>

<div class=”div2″>我是div2</div>

原理:给父级DIV定义固定高度(height),能解决父级DIV 无法获取高度得问题。
优点:代码简洁
缺点:高度被固定死了,是适合内容固定不变的模块。(不推荐使用)

方法六:父级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属性强制变成表格
优点:无
缺点:会产生新的未知问题。(不推荐使用)

方法七:让父级div 也一并浮起来
这样做可以初步解决当前的浮动问题。但是也让父级浮动起来了,又会产生新的浮动问题。 不推荐使用

方法八:父级div定义 伪类:after 和 zoom
代码如下:
<style type=”text/css”>
.div1{background:#000;border:1px solid red; /*解决代码*/overflow:hidden;zoom:1}

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

.left{float:left;width:20%;height:200px;background:#DDD}
.right{float:right;width:70%;height:80px;background:#DDD}
.clearfix:after { content: “.”;display: block;height: 0;clear: both;visibility: hidden; }
.clearfix {zoom:1;}
</style>

<div class=”div1 clearfix”>
<div class=”left”>我是左浮动</div>
<div class=”right”>我是右浮动</div>
</div>
<div class=”div2″>我是div2</div>

原理:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题
优点:结构和语义化完全正确,代码量也适中,可重复利用率(建议定义公共类)
缺点:代码不是非常简洁(极力推荐使用)

标签: css 网页兼容
最后更新:2025年9月13日

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

cywcd

我始终相信,技术不仅是解决问题的工具,更是推动思维进化和创造价值的方式。从研发到架构,追求极致效能;在随笔中沉淀思考,于 AI 中对话未来。

最新 热点 随机
最新 热点 随机
Claude Code 默认开启 Fork 分叉子智能体,叠加每秒千字扩散模型 Mercury 3 解析 狂揽 32 万 Star,让 AI 智能体帮你“逆向一切”:深度拆解 GitHub 现象级神器 morluto/rea 与 6 大最佳实践 OpenCode 曝 1.4% 用户密钥失窃,揭秘黑客“对抗性蒸馏”黑产! Claude 全面开放 OTel 追踪、Cohere 鲸吞 500 漏洞猎手:AI 智能体彻底告别“黑盒裸奔”! 不用显卡、普通 CPU 140 毫秒出结果!Mistral 突发开源 209M 时序模型 Timestral,横扫三大权威榜单 Meta Muse 被“开源复刻”?深度拆解 5000 星 OpenMuse:架构很香,但这 3 个暗坑必须看清
不讲废话的 AI 估值 2 亿美元!全面拆解“系统一”决策模型 Jev:70ms 极速响应与工业级实战白嫖 10 亿 Token 与云端虚拟机!Meta Muse 国内成功注册保姆级指南:手把手教你跳过排队宿敌破天荒联手!OpenAI 与 Anthropic 互相“查水表”,Google 证实 Agent 越狱渗透:AI 正在失控边缘?波及 13.4 万智能体!首个零点击 RCE 漏洞 Plugin4Shell 爆发:你锁定的插件正在偷偷黑掉你的电脑阿里开源 OpenCodeReview:给大模型套上“工程缰绳”的代码审查神器大模型集体打骨折,扎克伯格把 AI 挂上钥匙扣:科技巨头们到底在琢磨什么?
Vue SSR 与 Next.js 实战指南:从原理到落地的全栈思考 AI 多模态模型 MiniMax H3 开源:视频原生立体声+2K画质,社区“越狱”部署全搞定 i18n 高效实现方案:前端国际化神器安利一波 在线考试防作弊js实现代码完整版 Holo 3.1 惊艳登场:把电脑交给本地 AI“代驾”到底多爽? 吴恩达最新开源 OpenWorker:住在你桌面上的“全能 AI 数字同事”
最近评论
cywcd 发布于 4 周前(09月22日) 《牛来跑酷》游戏链接地址已更新: 1. Gemini 3.7 Flash 版 牛来跑酷: htt...
渔夫 发布于 12 个月前(11月05日) 学到了,感谢博主分享
沙拉小王子 发布于 9 年前(11月30日) 适合vue入门者学习,赞一个
沙拉小王子 发布于 9 年前(11月30日) 适合vue入门者学习,赞一个
cywcd 发布于 10 年前(04月27日) 请参考一下这篇文章http://www.jianshu.com/p/fa4460e75cd8

COPYRIGHT © 2025 蓝戒博客_智构苍穹-专注于大前端领域技术生态. ALL RIGHTS RESERVED.

京ICP备12026697号-2