3.清除浮动

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清除浮动总结

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

进制转换解析

进制 进制介绍 对于整数&#xff0c;有四种表示方式&#xff1a; 二进制&#xff1a;0,1 &#xff0c;满 2 进 1.以 0b 或 0B 开头。 十进制&#xff1a;0-9 &#xff0c;满 10 进 1。 八进制&#xff1a;0-7 &#xff0c;满 8 进 1. 以数字 0 开头表示。 十六进制&#xff1…

Spring Boot 中的 Spring Cloud Feign

Spring Boot 中的 Spring Cloud Feign Spring Boot 是一个非常流行的 Java Web 开发框架&#xff0c;它提供了很多工具和组件来简化 Web 应用程序的开发。其中&#xff0c;Spring Cloud Feign 是 Spring Boot 中的一个非常重要的组件&#xff0c;它可以帮助我们实现声明式的 R…

VSCode中打开NodeJS项目自动切换对应版本的配置

这几年搞了不少静态站点&#xff0c;有的是Hexo的&#xff0c;有的是VuePress的。由于不同的主题对于NodeJS的版本要求不同&#xff0c;所以本机上不少NodeJS的版本。 关于如何管理多个NodeJS版本&#xff0c;很早之前就写过用nvm来管理的相关文章&#xff0c;这里就不赘述了&a…

拼多多商品参数怎样复制(实用小技巧分享)

拼多多是一家以拼团购物为主打的电商平台&#xff0c;拼多多的商品信息非常详细&#xff0c;包括商品的价格、规格、型号、颜色、尺寸等多种参数。当我们需要在拼多多上发布商品或者参与拼团购物时&#xff0c;可能需要复制商品参数&#xff0c;那么拼多多商品参数怎样复制呢&a…

MySQL实战解析底层---“order by“是怎么工作的

目录 前言 全字段排序 rowid排序 全字段排序 VS rowid排序 前言 在开发应用的时候&#xff0c;一定会经常碰到需要根据指定的字段排序来显示结果的需求以举例市民表为例&#xff0c;假设你要查询城市是“杭州”的所有人名字&#xff0c;并且按照姓名排序返回前1000个人的姓…

深度学习常用激活函数总结

激活函数的特点 非线性。引入非线性能提升模型的表达能力可微分。如果激活函数不可微&#xff0c;那就无法使用梯度下降方法更新参数非饱和性。饱和指在某些区间上激活函数的梯度接近于零&#xff0c;使参数无法更新取值范围有界。这样可以使网络更稳定&#xff0c;即使有很大…

SSM项目前后端分离+IDEA运行环境(含前端源码)(个人博客系统)

目录 后端项目环境配置 1、创建一个SpringBoot项目&#xff0c;添加MyBatis框架和数据库MySQL驱动依赖 2、配置项目文件&#xff1a;application.yml 3、创建数据库表 4、创建分层结构目录 返回统一数据格式 创建统一数据格式返回类&#xff1a;AjaxResult 创建实现统一…

软件测试面试题(带答案)

1. 请自我介绍一下(需简单清楚的表述自已的基本情况&#xff0c;在这过程中要展现出自信&#xff0c;对工作有激情&#xff0c;上进&#xff0c;好学) 面试官您好&#xff0c;我叫###&#xff0c;今年26岁&#xff0c;来自广东深圳&#xff0c;就读专业是电子商务&#xff0c;…

Golang学习——string和slice切片

Golang学习——string和slice切片 string整数存储字符存储Unicode存储变长编码规则字符串类型变量的结构字符串变量的修改方式 slice通过make的方式定义变量new底层数组slice扩容规则1.预估扩容后的容量newCap2.newCap个元素需多大内存3.匹配到合适的内存规格练习 string 整数…

Cyclo(Leu-Leu),952-45-4,环(亮氨酸-亮氨酸),进行总结说明

&#xff08;文章资料汇总来源于&#xff1a;陕西新研博美生物科技有限公司小编MISSwu&#xff09;​ ●中文名&#xff1a;环&#xff08;亮氨酸-亮氨酸&#xff09; ●英文名&#xff1a;Cyclo(-Leu-Leu)&#xff0c;Cyclo(L-leucyl-L-leucyl)&#xff0c;Cyclo(Leu-Leu) ●…

二叉树OJ实战

目录 二叉树某一节点X祖先节点的交集&#xff08;证明题&#xff09; LeetCode_100. 相同的树 LeetCode_965. 单值二叉树 LeetCode_101. 对称二叉树 LeetCode_226. 翻转二叉树 LeetCode_112. 路径总和 LeetCode_113. 路径总和 II LeetCode_110. 平衡二叉树 LeetCode_9…

第一章:光纤通信概述

第一节&#xff1a;通信基本概念 1.1光纤通信基本概念 1.1.1光纤通信的概念 利用光导纤维传输广播信号的通信方式称为光纤通信。光波主要包括紫外线、可见光和红外线。光纤通信工作波长在近红外区&#xff0c;0.8um~1.8um的波长区&#xff0c;频率为167THz~375THz。光纤基础…

Nuxt3引入Element-plus和sass

1.引入Element-plus 打开编辑器终端 运行npm install element-plus/nuxt 或者命令行cd到项目文件 运行npm install element-plus/nuxt package.json文件会出现 使用Element-plus 在nuxt.config.ts文件添加代码 export default defineNuxtConfig({devtools: { enabled: true }…

MFC学习日记(一)——创建新项目

此系列所有文章参考链接&#xff1a;http://www.jizhuomi.com/software/141.html 点击file新建项目创建一个MFC新项目 点击确定 点击下一步 选择应用程序类型 我们看到有四种类型&#xff1a;Single document&#xff08;单文档&#xff09;、Multiple documents&#xff…

gigachad1靶机详解

gigachad_vh靶机详解 扫描到ip后对ip做一个全面扫描&#xff0c;发现有一个匿名服务器&#xff0c;是可以免密登陆的。 登陆上后发现就一个文件&#xff0c;get到我们电脑上。 file一下发现是一个zip文件&#xff0c;unzip解压一下&#xff0c;发现给了一个用户名chad&#xf…

【数据挖掘】时间序列教程【二】

2.4 示例:颗粒物浓度 在本章中,我们将使用美国环境保护署的一些空气污染数据作为运行样本。该数据集由 2 年和 5 年空气动力学直径小于或等于 3.2017 \(mu\)g/m\(^2018\) 的颗粒物组成。 我们将特别关注来自两个特定监视器的数据,一个在加利福尼亚州弗雷斯诺,另一个在密…

软考:中级软件设计师:存储管理,分区存储,页式存储,逻辑地址,物理地址

软考&#xff1a;中级软件设计师:存储管理&#xff0c;分区存储 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是…

LLM - Baichuan7B Tokenizer 生成训练数据

目录 一.引言 二.Tokenizer 原始数据 1.原始数据样例 2.加载并 Token 原始数据 2.1 参数准备 2.2 单条样本处理逻辑 2.3 批量处理逻辑 2.4 主函数与完整代码 三.shell 执行 四.总结 一.引言 前面提到了自己在微调 Baichuan7B Lora 的过程中遇到了一些问题&#xff0c…

leetcode 236. 二叉树的最近公共祖先

2023.7.11 这道题是道面试高频题&#xff0c;并且有点抽象。 首先确定终止条件。如果根节点为空&#xff0c;或者其中一个节点是根节点本身&#xff08;即 p root 或 q root&#xff09;&#xff0c;那么根节点就是它们的最低共同祖先&#xff0c;因此我们直接返回根节点 roo…

产品经理怎么管理项目进度?

作为在职七年的项目管理人员&#xff0c;在项目进度管理上确实有一点发言权。产品经理作为企业的核心骨干岗位之一&#xff0c;在进行项目进度管理时也会有很多问题出现&#xff0c;那么应该怎样去管理项目进度呢&#xff1f;以下是答主的一些拙见&#xff0c;有需要的朋友们就…