CSS 浮动(float)全解析:布局 / 文字环绕 / 清除浮动

CSS 浮动(float)是经典的布局方式,核心作用是让元素脱离正常文档流实现横向排列,同时支持文字环绕效果。本文详解浮动的定义、用法、文字环绕特性及清除浮动的核心方法,新手可直接复制代码上手。

一、CSS 浮动核心代码示例

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS浮动(float)实战</title>
    <style>
        /* 1. 浮动布局:两个div左浮动,横向排列 */
        #div1 {
            width: 200px;
            height: 100px;
            background-color: lightblue;
            float: left; /* 向左浮动 */
        }
        #div2 {
            width: 200px;
            height: 100px;
            background-color: lightgreen;
            float: left; /* 向左浮动 */
        }
        /* 2. 文字环绕:图片左浮动,文本环绕显示 */
        img {
            width: 100px;
            height: 100px;
            float: left; /* 图片左浮动,文本环绕右侧 */
            margin-right: 10px; /* 增加间距,优化排版 */
        }
    </style>
</head>
<body>
    <!-- 浮动布局演示 -->
    <div id="div1"></div>
    <div id="div2"></div>
    <!-- 清除浮动:恢复正常文档流 -->
    <div style="clear: both;"></div>
    <hr>

    <!-- 文字环绕演示 -->
    <div>
        超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。
        您可以使用 HTML 来建立自己的 WEB 站点,HTML 运行在浏览器上,由浏览器来解析。
        在本教程中,您将学习如何使用 HTML 来创建站点。
        <img src="img/img1.png">
    </div>
</body>
</html>

二、浮动核心知识点说明

1. 浮动基础定义

属性值 效果说明
float: left 元素向左浮动,脱离正常文档流
float: right 元素向右浮动,脱离正常文档流
float: none 默认值,元素不浮动,遵循正常文档流

核心特性:

  • 浮动元素脱离正常文档流,不占据原位置,后续元素会 "填补" 其位置;
  • 多个浮动元素(如示例中两个 div)会按浮动方向横向排列,直到碰到容器边界或其他浮动元素。

2. 文字环绕效果

浮动元素(如示例中的图片)会让后续文本自动环绕在其周围,这是浮动的经典应用场景(如图文混排)。

3. 清除浮动(解决父元素高度塌陷)

问题:

若父元素内只有浮动元素,父元素高度会塌陷为 0(无法包裹子元素)。

两种核心解决方法:

复制代码
/* 方法1:空标签清除(示例中使用的方式) */
.clear {
    clear: both; /* 清除左右两侧所有浮动 */
}

/* 方法2:伪元素清除(推荐,无冗余标签) */
.clearfix::after {
    content: "";       /* 空内容 */
    display: block;    /* 转为块级元素 */
    clear: both;       /* 清除浮动 */
    height: 0;         /* 隐藏伪元素 */
    visibility: hidden;
}

使用伪元素的完整示例:

复制代码
<div class="clearfix">
    <div id="div1"></div>
    <div id="div2"></div>
</div>

三、关键注意事项

  1. 清除浮动的取值
    • clear: left:清除左侧浮动;
    • clear: right:清除右侧浮动;
    • clear: both:清除左右两侧浮动(最常用)。
  2. 浮动元素的宽高:浮动元素需显式设置宽高(如示例中的 div/img),否则可能因内容为空导致无法显示。
  3. 文档流影响:浮动仅影响 "后续元素",前面的元素不受影响;清除浮动后,后续元素恢复正常文档流。
  4. 现代布局替代方案 :浮动是传统布局方式,现代开发更多用flex/grid布局,但浮动仍适用于文字环绕等场景。

四、典型应用场景

  1. 横向导航栏:导航选项左浮动,实现一行排列;
  2. 图文混排:图片浮动,文本环绕显示;
  3. 多列布局:多个 div 浮动,实现简易的两列 / 三列布局(需配合清除浮动)。

总结

  1. CSS 浮动(float)核心取值为 left/right/none,浮动元素脱离正常文档流,可实现横向排列和文字环绕;
  2. 浮动会导致父元素高度塌陷,需通过clear属性或伪元素清除浮动;
  3. 浮动是经典布局方式,文字环绕是其不可替代的核心场景,现代布局可结合 flex/grid 使用。
相关推荐
counterxing1 小时前
我把 Codex 里的 Skills 做成了一个 MCP,还支持分享
前端·agent·ai编程
wangqiaowq1 小时前
windows下nginx的安装
linux·服务器·前端
之歆1 小时前
DAY_12JavaScript DOM 完全指南(二):实战与性能篇
开发语言·前端·javascript·ecmascript
发现一只大呆瓜1 小时前
Vite凭什么这么快?3分钟带你彻底搞懂 Vite 热更新的幕后黑手
前端·面试·vite
Maimai108082 小时前
React如何用 @microsoft/fetch-event-source 落地 SSE:比原生 EventSource 更灵活的实时推送方案
前端·javascript·react.js·microsoft·前端框架·reactjs·webassembly
candyTong2 小时前
Claude Code 的 Edit 工具是怎么工作的
javascript·后端·架构
kyriewen3 小时前
产品经理把PRD写成“天书”,我用AI半小时重写了一遍,他当场愣住
前端·ai编程·cursor
humcomm4 小时前
元框架的工作原理详解
前端·前端框架
canonical_entropy4 小时前
Attractor Before Harness: AI 大规模开发的方法论
前端·aigc·ai编程
zhangxingchao4 小时前
多 Agent 架构到底怎么选?从 Claude Agent Teams、Cognition/Devin 到工程落地原则
前端·人工智能·后端