3.清除浮动

news2024/11/28 6:03:53

3.1 为什么需要清除浮动?

由于父级盒子在很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为0时,就会影响下面的标准流盒子。
在这里插入图片描述

●由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响

3.2 清除浮动本质

●清除浮动的本质是清除浮动元素造成的影响
●如果父盒子本身有高度,则不需要清除浮动
●清除浮动之后,父级就会根据浮动的子盒子自动检测高度。父级有了高度,就不会影响下面的标准流了

3.3 清除浮动

语法:

选择器{ clear:属性值; }

在这里插入图片描述
实际开发中几乎只用 clear:both;
清除浮动的策略是:闭合浮动

3.4 清除浮动的方法

1.额外标签法,也称为隔墙法,是W3C推荐的做法
2.父级添加overflow属性
3.父级添加after伪元素
4.父级添加双伪元素
(重点掌握2、3、4)

源代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 800px;
            border: 1px solid #000;
            margin: 0 auto;
        }
        .n1{
            float: left;
            width: 300px;
            height: 200px;
            background-color: aqua;
        }
        .n2{
            float: left;
            width: 200px;
            height: 200px;
            background-color: pink;
        }
        .footer {
            height: 200px;
            background-color: yellow;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="n1">1</div>
        <div class="n2">2</div>
    </div>
    <div class="footer"></div>
</body>
</html>

在这里插入图片描述

将上面这个没有采用清除浮动的源代码分别用这4种方法处理.

3.4.1 额外标签法

额外标签法也称为隔墙法,是W3C推荐的做法。
额外标签法会在浮动元素末尾添加一个空的标签。
例如< div style=" clear:both" > < /div> , 或者其他标签(如< br/>等)。

●优点: 通俗易懂,书写方便
●缺点: 添加许多无意义的标签,结构化较差

注意:
要求这个新的空标签必须是块级元素
处理代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 800px;
            border: 1px solid #000;
            margin: 0 auto;
        }

        .n1 {
            float: left;
            width: 300px;
            height: 200px;
            background-color: aqua;
        }

        .n2 {
            float: left;
            width: 200px;
            height: 200px;
            background-color: pink;
        }

        .footer {
            height: 200px;
            background-color: yellow;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="n1">1</div>
        <div class="n2">2</div>
        <!-- 这个新增的盒子要求必须是 块级元素 不能是行内元素 -->
        <div style="clear: both"></div>
    </div>
    <div class="footer"></div>
</body>

</html>

总结:
1.清除浮动本质是:清除浮动元素脱离标准流造成的影响
2.清除浮动策略是:闭合浮动。只让浮动在父盒子内部影响,不影响父盒子外面的其他盒子.
3.额外标签法:即隔墙法,就是在最后一个浮动的子元素后面添加一个额外标签,添加清除浮动样式。但这种方法不常用

3.4.2 父级添加 overflow

可以给父级添加overflow属性,将其属性值设置为hidden、auto 或scroll
(注意是给父元素添加代码

●优点:代码简洁
●缺点:无法显示溢出的部分

处理代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            /* 清除浮动 */
            overflow: hidden;
            width: 800px;
            border: 1px solid #000;
            margin: 0 auto;
        }

        .n1 {
            float: left;
            width: 300px;
            height: 200px;
            background-color: aqua;
        }

        .n2 {
            float: left;
            width: 200px;
            height: 200px;
            background-color: pink;
        }

        .footer {
            height: 200px;
            background-color: yellow;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="n1">1</div>
        <div class="n2">2</div>
    </div>
    <div class="footer"></div>
</body>

</html>

3.4.3 :after伪元素法

:after 方式是额外标签法的升级版,也是给父元素添加

.clearfix:after {
	content: "";
	display: block;
	height: 0;
	clear: both;
	visibility: hidden;
}
.clearfix {
	 /*IE6、7专有*/
	zoom: 1;
}

即在前面插入一个空盒子

●优点:没有增加标签,结构更简单
●缺点:照顾低版本浏览器
●代表网站:百度、淘宝网、网易等

处理代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .clearfix:after {
            content: "";
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }

        .clearfix {
            /*IE6、7专有*/
            zoom: 1;
        }

        .box {
            width: 800px;
            border: 1px solid #000;
            margin: 0 auto;
        }

        .n1 {
            float: left;
            width: 300px;
            height: 200px;
            background-color: aqua;
        }

        .n2 {
            float: left;
            width: 200px;
            height: 200px;
            background-color: pink;
        }

        .footer {
            height: 200px;
            background-color: yellow;
        }
    </style>
</head>

<body>
    <div class="box clearfix">
        <div class="n1">1</div>
        <div class="n2">2</div>
    </div>
    <div class="footer"></div>
</body>

</html>

3.4.4 双伪元素清除浮动

也是给父元素添加

.clearfix:before, .clearfix:after {
	content:"";
	display:table;
}
.clearfix:after {
	clear :both;
}
.clearfix {
	*zoom: 1;
}

即在前后都插入一个空盒子

●优点: 代码更简洁
●缺点: 照顾低版本浏览器
●代表网站:小米、腾讯等

处理代码:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .clearfix:before,
        .clearfix:after {
            content: "";
            /* 把模式转换成表格 */
            display: table;
        }

        .clearfix:after {
            clear: both;
        }

        .clearfix {
            zoom: 1;
        }

        .box {
            width: 800px;
            border: 1px solid #000;
            margin: 0 auto;
        }

        .n1 {
            float: left;
            width: 300px;
            height: 200px;
            background-color: aqua;
        }

        .n2 {
            float: left;
            width: 200px;
            height: 200px;
            background-color: pink;
        }

        .footer {
            height: 200px;
            background-color: yellow;
        }
    </style>
</head>

<body>
    <div class="box clearfix">
        <div class="n1">1</div>
        <div class="n2">2</div>
    </div>
    <div class="footer"></div>
</body>

</html>

以上4种方法处理结果都为:
在这里插入图片描述

3.5清除浮动总结

为什么需要清除浮动?
① 父级没高度
② 子盒子浮动了
③ 影响到下面布局了,我们就应该清除浮动

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/723850.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java开发微信公众平台之素材上传

微信公众平台官方文档 我在本地使用工具请求接口一切正常。 当我开始写代码的时候 我蒙了 后台怎么模拟form表单上传图片 放参考文章链接https://blog.csdn.net/subaiqiao/article/details/122059076 首先引入依赖 <dependency><groupId>com.squareup.okhttp3&l…

环状二肽:16364-36-6,cyclo(Ala-Glu),环(-丙氨酸-谷氨酸),具有明确的生物活性

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ Cyclo(Ala-Glu) 是一种环状二肽&#xff0c;环二肽(2,5-哌嗪二酮)是Z小的环肽&#xff0c;许多天然环二肽化合物都具有明确的生物活性&#xff0c;环二肽结构的特殊性使得这类化合物的合成自成体系&#xff0c;通常由N端游离…

sap abap,forms,smartforms 导出pdf

4种方法&#xff1a; 1.安装pdf程序&#xff0c;Foxit Reader,先敲回车 自动带出&#xff0c;如下图&#xff1a; 直接打印就会弹出保存pdf文档路径&#xff0c;点保存。这种方式是最简单的&#xff0c;可 forms 和 smartforms 。 2. forms 和 smartforms 打印到spool 中&…

Django搭建图书管理系统03:编写博客文章的Model模型

Django 框架主要关注的是模型&#xff08;Model&#xff09;、模板&#xff08;Template&#xff09;和视图&#xff08;Views&#xff09;&#xff0c;称为MTV模式。 它们各自的职责如下&#xff1a; 层次职责模型&#xff08;Model&#xff09;&#xff0c;即数据存取层处理与…

【设计模式】第六章:装饰器模式详解及应用案例

系列文章 【设计模式】七大设计原则 【设计模式】第一章&#xff1a;单例模式 【设计模式】第二章&#xff1a;工厂模式 【设计模式】第三章&#xff1a;建造者模式 【设计模式】第四章&#xff1a;原型模式 【设计模式】第五章&#xff1a;适配器模式 【设计模式】第六章&…

STM32外设系列—ESP8266(WIFI)

文章目录 一、ESP8266简介二、固件库烧录三、常用AT指令四、访问API4.1 获取IP地址4.2 GET天气信息4.3 访问结果展示 五、实战项目5.1 串口配置5.2 检测WIFI模块连接状态5.3 发送配置指令5.4 解析天气信息 六、成果展示 一、ESP8266简介 ESP8266是嵌入式和物联网开发中常用的模…

js实现用时间戳生成13位随机数

效果如图&#xff1a; methods里面写方法&#xff1a; changeTime(val) {//去掉-var reg new RegExp("-", "g");var a val.replace(reg, "");//去掉空格var regs new RegExp(" ", "g");var b a.replace(regs, "&qu…

MBD stm32开发 脉冲->GPIO

matlab1028b以上 stm32cubemx5.6.0以上 从正点原子下载&#xff0c;百度的可能存在java问题 stm32-mat/target 教程与代码分享 - 知乎 安装好这些后&#xff0c;打开matlab&#xff0c;打开路径STM32-MAT\STM32 打开MATLAB&#xff0c;在设置路径中添加STM32-MAT/TARGET文件…

港联证券|股指预计维持震荡格局 关注汽车、半导体等板块

6月全行业、全部非金融行业景气继续回落&#xff0c;中报或确认1Q23为本轮全A非金融盈利增速底&#xff0c;但价格支撑偏弱→复苏或缺弹性。结合本轮PPI见底时间、历次去库周期时长以及周期底部的合意库存水平&#xff0c;本轮库存周期大约3Q23见底&#xff0c;Q3市场或进入“补…

关于公安部三所开展网络安全产品认证工作的公告

各网络安全产品厂商&#xff1a; 2023年7月3日&#xff0c;国家互联网信息办公室、工业和信息化部、公安部、国家认证认可监督管理委员会发布了《关于调整<网络关键设备和网络安全专用产品目录>的公告》&#xff08;2023年第2号&#xff09;&#xff0c;调整了网络安全专…

最新kali Linux2023.1镜像下载链接

我们一般推荐使用国内镜像下载 kali linux-2023.1下载地址&#xff1a;国内镜像阿里云开源镜像站下载地址&#xff1a;kali-images-kali-2023.1安装包下载_开源镜像站-阿里云 kali linux-2023.1下载地址&#xff1a;国内镜像网易开源镜像站下载地址&#xff1a;http://mirror…

Spring Boot 中的模板引擎是什么,如何使用

Spring Boot 中的模板引擎是什么&#xff0c;如何使用 在 Web 应用程序中&#xff0c;模板引擎是一种用于动态生成 HTML、XML、JSON 等文档的工具。Spring Boot 内置了多种常见的模板引擎&#xff0c;例如 Thymeleaf、Freemarker、Velocity 等&#xff0c;让我们可以轻松地创建…

赋值CString时导致程序崩溃的一个问题

使用GetWindowTextW将vgj容器内指定结构体的opinion变量赋值 GetDlgItem(IDC_EDIT2)->GetWindowTextW(vgj.at(i).opinion);//将opinion赋值导致程序出现崩溃&#xff0c;通常这种崩溃是由于访问野指针造成的 检查之前的代码有 memset(&vgj.at(i), 0, sizeof(vgj.at(i…

TextFuseNet:具有更丰富融合特征的场景文本检测

计算机视觉 文章目录 计算机视觉摘要1.介绍2.相关工作3.方法3.1框架3.2 多层次特征表示3.3 多路径融合体系结构3.4 弱监督学习 4.实验4.1 数据集4.2 细节4.3消融实验4.4 与最新的形状文本检测方法的比较 5. 结论 论文地址&#xff1a;https://www.ijcai.org/Proceedings/2020/7…

Python教程(2)——开发python常用的IDE

为什么需要IDE 在理解IDE之前&#xff0c;我们先做以下的实验&#xff0c;新建一个文件&#xff0c;输入以下代码 total_sum 0 for x in range(1,101):total_sum x print(total_sum)非常非常简单的一个程序&#xff0c;主要就是计算1加到100的值&#xff0c;我们将它重命名…

阿里云国际站:阿里云究竟是如何胜出的?

标题&#xff1a;阿里云究竟是如何胜出的&#xff1f;   "阿里云究竟是如何胜出的&#xff1f;"这是一个引人入胜的问题&#xff0c;值得我们深挖细究。作为中国市场上引领潮流的云计算服务供应商&#xff0c;阿里云的成功并不是偶发事件&#xff0c;而是其在技术创…

Java语言 - Unicode编码与字符串互转

概述 项目需要Unicode编码与字符串互转&#xff0c;在此做个笔录。 1、code // Press Shift twice to open the Search Everywhere dialog and type show whitespaces, // then press Enter. You can now see whitespace characters in your code. public class Main {public…

一起来看看文档翻译哪个好吧

在繁忙的都市生活中&#xff0c;小玲是一位年轻的职场人士。她的工作经常需要处理各种文档和文件&#xff0c;而其中不乏需要与外国合作伙伴交流的时候。然而&#xff0c;她并不熟悉其他语言&#xff0c;这给她的工作带来了一定的困扰。于是&#xff0c;她开始寻找免费的文档翻…

npm配置淘宝镜像

1.直接配置 npm config set registry https://registry.npmmirror.com/ 2.工具配置 使用nrm配置&#xff0c;镜像地址为&#xff1a;npm registry manager 2.1安装 npm install -g nrm open8.4.2 --save 2.2使用淘宝镜像 nrm use taobao 2.3切换镜像 nrm ls 2.4查看配置项 n…

ssl代理是什么,哪些业务场景可以使用ssl代理?

随着数智化时代的到来&#xff0c;网络安全变得尤为重要。为了保护敏感信息和确保通信的安全性&#xff0c;SSL代理应运而生。SSL代理是一种网络代理服务器&#xff0c;通过解密和重新加密SSL/TLS加密通信&#xff0c;实现对网络通信的监控、分析和保护。今天&#xff0c;我们就…