浮动以及如何清除浮动

news/2025/1/16 5:55:00/

什么是浮动,先来看浮动的定义
在网页设计中,"浮动"是一种布局技术,用于控制元素在页面中的位置。浮动元素会脱离正常的文档流,并移动到其容器的左侧或右侧,允许其他内容环绕它。

通常,浮动被用于创建多栏布局或使图像和文本等内容在页面上对齐。例如,你可以使用浮动将一张图片放置在文本旁边,让文字环绕图片。

浮动元素可以是块级元素或内联元素,但是一般情况下,我们更多地使用它们来布局块级元素。

要将元素浮动,可以使用 CSS 中的 float 属性,其值可以是 left、right 或 none。当一个元素被浮动后,它会尽可能地移动到指定的方向,直到遇到容器的边界或另一个浮动元素为止。

可能看到这里,还有些迷糊,啥玩意,啥叫脱离正常的文档流。没事,接着往下看

在网页布局中,元素的排列通常是基于文档流的,即元素按照其在HTML文档中出现的顺序依次排列,每个元素会占据一定的空间。

但是,当元素被设置为浮动时,它会脱离文档流,其他元素会以一种不同于正常情况的方式排列。
具体来说,浮动元素会尽可能地移动到指定的方向(左侧或右侧),直到遇到容器的边界或另一个浮动元素为止。其他元素会尝试围绕浮动元素进行排列,而不会被浮动元素所覆盖。
这种浮动元素的影响会导致以下几个问题:
父元素的塌陷(Collapse): 当父元素包含了浮动元素,并且没有设置适当的清除浮动,可能会导致父元素的高度塌陷,使得父元素的高度变为0,从而影响到布局。
文本环绕: 浮动元素可能会导致文本环绕其周围,使得文本的布局发生变化。
重叠和遮挡: 如果没有适当处理,浮动元素可能会重叠或者遮挡其他元素,导致布局混乱。

来看看没有浮动影响的文档流的布局
文档流(Document Flow)是指 HTML 文档中元素按照它们在文档中出现的顺序进行布局和排列的一种方式。元素在文档流中所占据的空间会影响到其他元素的位置和大小。

在文档流中,元素可以是块级元素(block-level elements)或内联元素(inline elements)。块级元素会占据一行,并且默认情况下会从上到下依次排列,每个块级元素会占据一整行的宽度,而内联元素则会在同一行内水平排列。

以下是一个简单的示意图,展示了文档流中的两个元素(一个块级元素和一个内联元素)的排列方式:

+-----------------------------------------------------------+
|  块级元素(Block-level element)                            |
|  在文档流中占据整行宽度,从上到下依次排列。               |
|  可以包含其他块级元素和内联元素。                          |
|                                                           |
|                                                           |
|                                                           |
+-----------------------------------------------------------+
+------------------------------+---------------------------+
|  内联元素(Inline element)   |  内联元素                 |
|  在同一行内水平排列,直到达到行的末尾自动换行。           |
|  可以在文本中嵌套,但不能包含块级元素。                  |
+------------------------------+---------------------------+

为了在使用浮动的时候又不影响正常的文档流,我们就需要使用清除浮动

清除浮动是一种在网页设计中常用的技术,用于解决因为浮动元素而引起的布局问题。浮动元素会脱离文档流,可能导致其父元素的高度塌陷,或者其他元素排列错乱、重叠等问题。清除浮动的主要目的是确保浮动元素不会影响到其容器或其他元素的布局。

清除浮动的方法通常是在包含浮动元素的容器中添加特定的样式或标记,使得容器可以正常地包裹浮动元素,从而避免布局问题。

使用伪元素清除浮动:通过在包含浮动元素的容器中添加一个空的伪元素,并设置其 clear 属性,使其不受浮动元素的影响,从而清除浮动效果。

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

使用额外的块级元素清除浮动:在浮动元素后面添加一个空的块级元素,并设置其 clear 属性,使其不受浮动元素的影响,达到清除浮动的效果。

<div class="float-container"><div class="float-left">左浮动元素</div><div class="float-right">右浮动元素</div><div style="clear: both;"></div> <!-- 清除浮动 -->
</div>

使用 overflow 属性清除浮动:设置包含浮动元素的容器的 overflow 属性为 auto 或 hidden,创建一个新的块格式化上下文,从而清除浮动。

.float-container {overflow: auto;
}

http://www.ppmy.cn/news/1457243.html

相关文章

AI视频教程下载:如何制作病毒式传播的AI克隆视频

这门视频教程是一个关于如何利用人工智能&#xff08;AI&#xff09;克隆技术来创建和编辑视频的教程。 主要内容包括以下方面&#xff1a; **介绍和欢迎**&#xff1a;欢迎用户加入的AI克隆视频制作课程&#xff0c;并鼓励用户开始创作内容。**自动化过程**&#xff1a;介绍了…

【docker 】 push 镜像提示:denied: requested access to the resource is denied

往 Docker Registry &#xff08;私服&#xff09;push 镜像提示&#xff1a;denied: requested access to the resource is denied 镜像push 语法&#xff1a;docker push <registry-host>:<registry-port>/<repository>:<tag> docker push 192.16…

语音识别--使用YAMNet识别环境音

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

【软测学习笔记】MySQL入门Day03

&#x1f31f;博主主页&#xff1a;我是一只海绵派大星 &#x1f4da;专栏分类&#xff1a;软件测试笔记 &#x1f4da;参考教程&#xff1a;黑马教程❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、字段的别名 二、表的别名 三、distinct过滤重复记录 四、where子…

罗德与施瓦茨 SMC100A信号发生器9kHz至3.2 GHz

罗德与施瓦茨 SMC100A信号发生器&#xff0c;9 kHz - 3.2 GHz 罗德与施瓦茨 SMC100A 以极具吸引力的价格提供出色的信号质量。它覆盖的频率范围为 9 kHz 至 1.1 GHz 或 3.2 GHz。输出功率为典型值。> 17 dBm。所有重要功能&#xff08;AM/FM/φM/脉冲调制&#xff09;均已集…

OpenSBI 固件代码分析合集-泰晓社区

泰晓社区&#xff1a;https://tinylab.org/ OpenSBI 固件代码分析&#xff08;一&#xff09;&#xff1a;启动流程OpenSBI 固件代码分析&#xff08;二&#xff09;&#xff1a;fw_base.S 源码分析OpenSBI 固件代码分析&#xff08;三&#xff09;: sbi_init.cOpenSBI 固件代…

Python中的生成器是什么

生成器的工作原理 只要Python函数的主体中有yield关键字,该函数就是生成器函数。调用生成器函数,返回一个生成器对象。也就是说,生成器函数是生成器工厂。 下面以一个简单的函数说明生成器的行为: def gen123():yield 1yield 2yield 3print(gen123) # <function gen…

升级 Vite 5 出现警告 The CJS build of Vite‘s Node API is deprecated

错误描述 vue3-element-admin 项目将Vite4 升级至 Vite5 后,项目运行出现如下警告: The CJS build of Vites Node API is deprecated. See https://vitejs.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details.图片 问题原因 Vite 官方弃用 C…