【前端面经】CSS-浮动和清除浮动的方式

news/2024/12/2 17:30:55/

浮动和清除浮动的方式

在页面布局中,我们经常会用到浮动来实现一些特殊效果,但是浮动也会引起一些问题。在使用浮动布局时,我们需要清除浮动以避免出现布局问题。本文将介绍浮动的相关知识以及清除浮动的方式。

浮动

浮动是 CSS 中的一种布局方式。当一个元素浮动时,它会脱离文档流,不再占据文档空间。浮动元素的位置会受到其他元素的影响,有时会出现“高度塌陷”的现象。

浮动的定义

非 IE 浏览器下,父容器不设高度且子元素浮动时,容器高度不会被内容撑开。因此,内容会溢出到容器外面而影响布局,这种现象被称为浮动(溢出)。

浮动的工作原理

  • 浮动元素脱离文档流,不占据空间(引起"高度塌陷"现象)。
  • 浮动元素碰到父元素的边框或者其他浮动元素的边框时停留。

浮动元素引起的问题

  • 父元素的高度无法被撑开,影响与父元素同级的元素。
  • 与浮动元素同级的非浮动元素。
  • 若浮动的元素不是第一个元素,则该元素之前的元素也要浮动,否则会影响页面的结构。

清除浮动的方式

在使用浮动布局时,我们需要清除浮动以避免出现布局问题。下面是几种清除浮动的方式:

1. 给父级元素添加 height 元素

可以给父级元素添加 height 属性,使其高度可以被撑开,从而解决浮动元素引起的高度塌陷问题。但是这种方式只适用于浮动元素的高度已知的情况。

2. 在最后一个浮动元素后添加一个空的 div,并添加 clear: both 样式

在最后一个浮动元素后添加一个空的 div,再设置 clear: both 样式,可以清除浮动。这种方式适用于浮动元素的高度未知的情况。

<div style="clear:both;"></div>

3. 给包含浮动元素的父级元素添加 overflow: hidden 样式

给包含浮动元素的父级元素添加 overflow: hidden 样式,可以清除浮动。这种方式适用于父级元素没有设置高度的情况。

<div style="overflow: hidden;"><div style="float: left;">浮动元素1</div><div style="float: left;">浮动元素2</div><div style="float: left;">浮动元素3</div>
</div>

4. 使用 ::after 伪元素,添加 display: block,clear: both 样式

使用 ::after 伪元素可以在元素的末尾插入一个虚拟的元素。给这个虚拟的元素添加 display: block,clear: both 样式,可以清除浮动。

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

以上就是浮动和清除浮动的方式。在实际开发中,我们需要根据具体的情况选择合适的方式,以实现预期的效果。


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

相关文章

python:评估分类模型性能的常用指标(acc、auc、roc)

本文记录了评估分类模型性能的常用指标ACC、AUC、ROC曲线的计算方法和代码。代码使用python实现。 简介 ACC(Accuracy)是模型的准确率,即模型正确预测的样本数占总样本数的比例。ACC 可以用来评估模型在整体上的分类效果,但它不能很好地反映模型在不同类别上的表现差异。…

云计算的优势与未来发展趋势

一、前言二、云计算的基础概念2.1 云计算的定义2.2 云计算的发展历程2.3 云计算的基本架构2.4 云计算的主要服务模式 三、企业采用云计算的优势3.1 降低成本3.2 提高效率和灵活性3.3 提升信息系统的安全性和可靠性3.4 拥有更加丰富的应用和服务 四、行业应用案例4.1 金融行业4.…

【硬件】嵌入式电子设计基础之分析电路

电子技术&#xff08;electronics&#xff09;是我们研究科技产品的基石&#xff0c;本文章通过一系列简单且使用的实例&#xff0c;带领大家走进电子技术的世界&#xff0c;并通过对这些实例的分析&#xff0c;掌握其中的知识点和实用的电路分析设计技能。 本篇文章围绕着模拟…

猫狗训练集训练报错:Failed to find data adapter that can handle input

这里写自定义目录标题 Jupyter Notebook6.5.4 tensorflow 2.12.0 pillow 9.5.0 numpy 1.23.5 keras 2.12.0 报错详细内容&#xff1a; ValueError: Failed to find data adapter that can handle input: (<class ‘tuple’> containing values of types {“<class ‘k…

【Stable Diffusion】ControlNet基本教程(二)

接上篇【Stable Diffusion】ControlNet基本教程&#xff08;一&#xff09;&#xff0c;本篇介绍两个ControlNet常见的基本用法&#xff0c;更多用法欢迎关注博主&#xff0c;博主还会更新更多有趣的内容。 3.ControlNet基本用法 3.1漫画线稿上色 &#xff08;1&#xff09;上传…

MIT|Missing Semester计算机教育中缺失的一课

Missing Semester 学习 课程主页&#xff1a;https://missing.csail.mit.edu 课程记录 一、Course overview the shell 1.1 shell命令入门 echo "hello world" echo hello world echo hello\ world1.2 how system can find echo? echo $PATH which echo /bin…

请求与相应

从容器到Servlet 前面我们介绍了JSP的内置对象和Servlet的相关知识&#xff0c; 以及如何部署和开发一个Servlet。但是&#xff0c; 并没有详细介绍如何将Servlet与JSP结合起来使用。Web容器是JSP唯一可以识别的HTTP服务器&#xff0c; 所以必须了解Web容器如何生成请求和响应…

6个「会议议程」实例和免费模板

我们都参加过一些团队会议&#xff0c;在这些会议上&#xff0c;大多数与会者对会议的目的一无所知&#xff0c;而发言者则使讨论偏离轨道。 接下来就是一场真正的灾难了。 你会发现你的团队因为“上述会议”而浪费了很多时间&#xff0c;却没有达到任何目的。 好消息! 一个…