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 使用。
相关推荐
Csvn7 分钟前
构建工具
前端
FRing0337 分钟前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2
kyriewen3 小时前
Skills 榜前 10 我全装了:只有 3 个能直接用
前端·javascript·程序员
IT_陈寒3 小时前
当Java的hashCode遇上Lombok,我的缓存被全清了
前端·人工智能·后端
工控丫丫4 小时前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库
jerrywus4 小时前
我用 GPT-6.1-sol 做了台会讲解的 3D 售货机:60 罐饮料,一口没喝上
前端·agent·claude
孟陬5 小时前
Foobar 技术周刊#159:当看不懂代码时,如何高效排障调试。脏页陷阱:一条只读查询,写入数 TB 数据。推测解码:大模型加速利器
前端·人工智能·后端
Zhao-Jichao5 小时前
AI Prompting for Everyone 课程笔记 - P17 图像生成 Imaging Generation
前端
Highcharts.js6 小时前
智能数据分析组件Orbit 正式发布与快速上手体验教程
前端·人工智能·信息可视化·数据分析系统·highcharts·orbit·智能可视化
Dream-Y.ocean6 小时前
鸿蒙PC平台星图遥感适配实战:基于 Electron 壳方案的纯 JavaScript 遥感图像处理引擎开发
javascript·electron·harmonyos