CSS 清除浮动原理详解

CSS 清除浮动原理详解CSS 清除浮动原理详解一 浮动 floatfloat 属性的本质是用来实现文字环绕效果的 它有一个很大的副作用 会导致父容器的高度坍塌疑问 那么将父容器固定高度有用吗 没用 因为只要浮动元素的区域超过了这个高度 依旧会出现环绕效果影响布局那么怎么解决这个问题呢 清除浮动方法很多 但本质上只有两种方法使用 clear 清除浮动形成 BFC1 1 使用 clear 清除浮动 cle

CSS 清除浮动原理详解

一. 浮动float

疑问:

  1. 那么将父容器固定高度有用吗?
    没用,因为只要浮动元素的区域超过了这个高度,依旧会出现环绕效果影响布局

  1. 使用clear清除浮动
  2. 形成BFC

1.1 使用clear清除浮动

clear 属性是 CSS 专门用来处理 float引起的高度坍塌问题

语法:

clear: none | left | right | both

使用clear: both就可以, leftright可以完全被替代

使用clear要注意的地方

  1. clear只会清除自身所在前面的元素的浮动
  2. clear属性只作用在块级元素

因为clear只会清除前面元素的浮动,因此我们要在容器的最后面添加一个块级元素,并让该元素使用clear: both属性

最常见的做法就是在父容器身上使用::after

#container::after { 
    content: ""; display: block; clear: both; } 

因为clear只作用在块级元素上, ::after等伪元素都是内联的
所以我们要加上这两行

content: ""; display: block; 

1.2 使用BFC清除浮动

BFC全称为 block formatting context, 中文为”块级格式化上下文”

如何触发BFC
以下规则只要满足任意一条,即可触发

  1. 根元素
  2. float 的值不为 none
  3. overflow 的值为 auto、scroll 或 hidden
  4. display 的值为 table-cell、table-caption 和 inline-block 中的任何一个
  5. position 的值不为 relative 和 static

BFC的一些特性

  1. 计算BFC高度时,浮动元素也会参与计算(用来解决父元素高度塌陷问题)
  2. 是一个独立的容器,外面元素不会影响他里面的元素
  3. BFC元素不会与浮动元素的盒子相互重叠(解决兄弟元素排版混乱问题)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/215627.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午1:48
下一篇 2026年3月18日 下午1:49


相关推荐

  • 实测Seedance 2.0:当AI成为导演,Sora 2被超越了?

    实测Seedance 2.0:当AI成为导演,Sora 2被超越了?

    2026年3月13日
    2
  • IDEA 2022.01.13激活服务器【最新永久激活】

    (IDEA 2022.01.13激活服务器)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~1PA3AFINM4-eyJsaWNlbnNlSWQiOi…

    2022年3月31日
    133
  • 深入理解java虚拟机第四版PDF下载_深入理解java虚拟机 pdf

    深入理解java虚拟机第四版PDF下载_深入理解java虚拟机 pdfJVM架构图:类装载器:沙箱安全机制:ExecutionEngine执行引擎负责解释命令,提交操作系统执行。NativeMethodStack本地方法栈:运行本地方法的栈ProgramCounterRegister即PC寄存器(程序计数器)程序计数器底层是bytecodepointer(bcp)即字节码指针PC寄存器是用来存储指向下一条指令的地址,也即将要执行的指令代码。由执行引擎读取下一条指令。1.它是一块很小的内存空间,几乎可以忽略不计。也是运行速度最快的存储区域…

    2022年10月9日
    4
  • kali如何安装蚁剑

    kali如何安装蚁剑文章目录 1 已有蚁剑源码安装 2 没有蚁剑源码安装 3 蚁剑源码下载 1 已有蚁剑源码安装从 v2 0 0 beta 版本开始 用户 开发者只需要下载对应平台的加载器 无需安装额外的环境 即可对源代码进行编辑 执行 调试等操作 可直接运行当前最新的开发版和发行版源代码 如果已经有蚁剑源码了 就只需要下载加载器即可使用蚁剑了新建一个文件夹 文件夹中不能包含中文在我们新创建的 antsword 目录下下载加载器加载器下载地址 https github com AntSwordProj AntS

    2026年3月16日
    2
  • redhat安装git工具[通俗易懂]

    1、首先到官网上下载git包,地址为http://git-scm.com/download2、输入命令tarzxvfgit-1.7.9.4.tat.gz解压文件到当前目录3、依次执行./configure   make   sudomakeinstall4、安装成功之后执行git–version查看是否安装成功

    2022年4月14日
    179
  • java自定义注解和使用[通俗易懂]

    自定义注解@Target自定义注解的使用范围ElementType.METHOD:方法声明ElementType.TYPE:类、接口(包括注解类型)或enum声明ElementType.CONSTRUCTOR:构造器的声明ElementType.FIELD:域声明(包括enum实例)ElementType.LOCAL_VARIABLE:局部变量声明ElementType.PACKA…

    2022年4月13日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号