浮动以及如何清除浮动

ops/2024/12/23 13:16:27/

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

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

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

要将元素浮动,可以使用 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/ops/37247.html

相关文章

奥威-金蝶BI现金流量表模板,可借鉴、可套用

企业现金流一旦出了问题都是大问题&#xff0c;会直接影响到企业的日常运作&#xff0c;甚至直接关系到企业能不能继续存活&#xff0c;因此现金流量表是企业财务分析中重要报表之一&#xff0c;也是企业监控财务监控情况的重要手段之一。那么这么重要的一份现金流量表该怎么做…

【Git】Git学习-10-11:GitHub,SHH配置,克隆仓库

学习视频链接&#xff1a;【GeekHour】一小时Git教程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1HM411377j/?vd_source95dda35ac10d1ae6785cc7006f365780 创建仓库 配置SSH密钥可以更加安全&#xff0c;方便地推送、拉取代码 根目录下&#xff0c;进入.ssh文件&am…

LSS(Lift, Splat, Shoot)算法解析

1.简介 LSS(Lift, Splat, Shoot) 是一个比较经典的自下而上的构建BEV特征的3D目标检测算法&#xff0c;通过将图像特征反投影到3D空间生成伪视锥点云&#xff0c;通过Efficientnet算法提取云点的深度特征和图像特征并对深度信息进行估计&#xff0c;最终将点云特征转换到BEV空…

Vue2和Vue3的优化

在Vue.js 2中&#xff0c;你可以使用异步组件来延迟加载组件&#xff0c;以提高应用的性能。以下是使用异步组件的步骤&#xff1a; 创建一个异步组件。你可以使用Vue.component()函数来定义一个异步组件&#xff0c;例如&#xff1a; Vue.component(AsyncComponent, functio…

使用QT开发ROS可视化界面

Q&#xff1a; undefined reference to non-virtual thunk to MyViz A&#xff1a; 该问题主要由于QT中的MOC File没有正确生成&#xff0c;导致虚函数列表出现问题。另外&#xff0c;需要注意虚函数的virtual关键字需要放在类的声明&#xff0c;不能放在类的定义。 qt5_wrap…

CSS-显示模式

显示模式 块级元素 独占一行 宽度默认是父级元素的100% 设置宽高属性生效 行内元素 一行可以显示多个&#xff0c;每个元素之间空格 设置宽高属性不生效 宽高由内容决定 行内块元素 一行可以设置多个 设置宽高属性生效 宽高也可以由内容决定 切换显示…

滑块槽位最优寻找

说明 如果图像中存在多个干扰槽&#xff0c;并且我们只想找到与滑块最匹配的槽&#xff0c;我们可以通过一些额外的策略来实现。一种方法是计算每个槽与滑块的距离&#xff0c;并选择距离最近的那个作为最匹配的槽 代码 import cv2 import numpy as npdef calculate_distance(c…

【C++ 所有STL容器简介】

【C 所有STL容器简介】 1. vector2. list3. deque4. set / multiset5. map / multimap6. unordered_set / unordered_multiset7. unordered_map / unordered_multimap8. stack9. queue10. priority_queue C 标准模板库&#xff08;STL&#xff09;提供了一系列常用的容器&#…