0

0

CSS如何利用空div清除浮动_在浮动末尾添加clear:both的css标签(传统法)

P粉602998670

P粉602998670

发布时间:2026-03-10 12:42:14

|

334人浏览过

|

来源于php中文网

原创

清浮动的本质是防止父容器高度塌陷,正确做法是让非浮动块级元素位于浮动元素之后并设置clear: both;现代推荐用display: flow-root或clearfix伪元素方案。

css如何利用空div清除浮动_在浮动末尾添加clear:both的css标签(传统法)

为什么在浮动元素后面加 clear: both 能“清浮动”

浮动元素会脱离文档流,导致父容器高度塌陷——这不是 bug,是 CSS 规范里明确定义的行为。加一个空 <div style="clear: both"></div>,本质是插入一个「不浮动、且强制换行」的块级元素,它会避开上方所有浮动,从而把父容器的底部边界“撑”下来。

这个操作有效,但代价是 HTML 里多了一个无语义、纯为样式服务的节点,维护性差,可读性低。

clear: both 的实际写法和常见错误

很多人直接写 clear: both 却没意识到:它只对「块级元素」生效,且必须出现在浮动元素的「后续兄弟元素」中(不能是浮动元素自己,也不能是父元素)。下面这些写法都无效:

  • .float-box { clear: both; } —— 浮动元素自己设 clear,不影响父容器高度
  • .parent { clear: both; } —— 父元素没浮动,clear 完全不起作用
  • <span style="clear: both"></span> —— <span></span> 默认是 inline 元素,clear 不生效

正确做法是确保它是块级、紧跟在浮动元素之后:

立即学习前端免费学习笔记(深入)”;

<div class="wrapper">
  <div class="float-left">左浮</div>
  <div class="float-right">右浮</div>
  <div style="clear: both"></div>
</div>

现代替代方案:用 ::after 伪元素代替空 div

不用改 HTML,纯靠 CSS 就能模拟那个“清浮动的空 div”,关键是利用 ::after 生成一个块级内容,并设置 clear: both

艺映AI
艺映AI

艺映AI - 免费AI视频创作工具

下载

最简可靠写法:

.clearfix::after {
  content: "";
  display: block;
  clear: both;
}

注意三个要点:

  • content: "" 必须有,否则伪元素不渲染
  • display: block 必不可少,inline 或 inline-block 都无法触发 clear
  • 要给父容器加这个类,比如 <div class="wrapper clearfix"> <p>兼容性没问题:IE8+ 都支持 <code>::afterclear 组合。

    更省事的方案:overflow: hiddendisplay: flow-root

    如果只是想让父容器包含浮动子元素,不一定要“清除”——可以改变父容器的 BFC(块级格式化上下文)触发条件:

    • overflow: hidden(或 autoscroll):简单粗暴,但可能意外裁剪溢出内容或触发滚动条
    • display: flow-root:专为此设计的值,创建新 BFC 且无副作用,Chrome 58+/Firefox 53+/Safari 15.4+ 支持

    推荐优先用 display: flow-root,语义清晰、行为可控;老项目需兼容 IE 时,才退回到 clearfix 类。

    真正容易被忽略的是:清浮动不是目的,防止父容器塌陷才是。选哪种方式,得看你的布局是否允许改变父容器的 overflowdisplay,而不是机械套用“空 div + clear”。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

1051

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

832

2023.11.06

css中float用法
css中float用法

css中float属性允许元素脱离文档流并沿其父元素边缘排列,用于创建并排列、对齐文本图像、浮动菜单边栏和重叠元素。想了解更多float的相关内容,可以阅读本专题下面的文章。

594

2024.04.28

C++中int、float和double的区别
C++中int、float和double的区别

本专题整合了c++中int和double的区别,阅读专题下面的文章了解更多详细内容。

105

2025.10.23

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

829

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

30

2025.12.06

overflow什么意思
overflow什么意思

overflow是一个用于控制元素溢出内容的属性,当元素的内容超出其指定的尺寸时,overflow属性可以决定如何处理这些溢出的内容。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1853

2024.08.15

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

8

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

62

2026.03.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.9万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.5万人学习

CSS教程
CSS教程

共754课时 | 41.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号