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 使用。
相关推荐
OpenTiny社区16 分钟前
太酷了!装上OpenTiny dsh‑genui这个插件,你的DeepSeek Harness点击就能干活了!
前端·ai编程
用户9385156350718 分钟前
大模型记忆指南:从短时缓存到永久记忆,手把手带你吃透 LangChain Memory 管理
javascript·人工智能
ModyQyW22 分钟前
vite-plugin-uni-pages 更新了什么
前端·uni-app
xqchen34 分钟前
Web Components 普及困境深度解析:技术标准与工程实践的落差
javascript
爱丶不疚38 分钟前
写给前端工程师的现代 Python 工程化最佳实践:从 pnpm 到 uv,从 CommonJS 到 src-layout
javascript·python·typescript
前端大卫41 分钟前
H5 渲染 PDF 并添加高亮的两种方案【附源码】
前端
因_崔斯汀2 小时前
用 AI 生成 Three.js 沉浸式网站,代码与 Skill 均已开源
前端·人工智能
葡萄城技术团队2 小时前
一键触发工作表中所有异步函数:用依赖单元格刷新 SpreadJS 公式
前端
Bigger2 小时前
谁动了我的 URL?——记一次微前端"灵异 Bug"的排查实录
前端·ai编程·vue-router
JavaGuide2 小时前
轻量开源版 IDEA 来了!
前端·后端