re:从0开始的CSS之旅 16. 高度塌陷问题

1. 高度塌陷问题

高度塌陷问题:在文档流中,父元素的高度默认是被子元素撑开的,子元素多高,父元素就多高。
但是当子元素设置浮动后,我们发现子元素在页面中的位置没变,但是父元素的高度却塌陷了(没有被子元素撑开)
父元素在文档流中一旦发生高度塌陷的问题,将影响整个页面的布局。

因此,高度塌陷的问题我们必须解决!

高度塌陷问题的解决办法:

  1. 可以根据子元素的高度设置父元素的高度,使页面看起来不塌陷
    但是我们有事无法确定父元素的具体高度。因此,不建议使用。
    例如:评论展示、新闻阅读等

  2. BFC(Block Formatting Context)块级格式化上下文
    在W3C标准中,页面元素都有一个隐藏的属性,简称BFC
    开启BFC后,元素将具有以下特点:

    1. 父元素的垂直外边距不会和子元素重叠

    2. 开启BFC的元素不会被浮动元素覆盖

    3. 开启BFC的元素可以包含浮动元素

      如何开启BFC:
      1. 设置元素浮动
      2. 设置元素绝对定位
      3. 设置元素为inline-block
      上述三种方式能解决高度塌陷的问题,但是宽度会丢失,因此不推荐使用
      4. 设置元素的overflow: hidden

  3. clear属性清除浮动,用于清楚浮动对元素造成的影响
    可选值:
    none 不清除浮动(默认值)
    left 清除左侧浮动
    right 清除右侧浮动
    both 清除两侧浮动

思路:
1. 为需要解决高度塌陷问题的父元素再创建一个子元素
因为仅解决高度塌陷问题,因此使用伪元素创建更恰当
2. 该子元素需要清除第一个元素浮动带来的影响
html .clearfix::after, .clearfix::before { content: ""; display: table; clear: both; }

示例如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>High collapse problem</title>.father {border: 10px solid red;/* float: left; *//* display: inline-block; *//* overflow: hidden; */}.son {width: 200px;height: 200px;background-color: #c7edcc;/* 设置浮动 */float: left;}/* 伪元素创建的元素为行内元素,我们需要将行内元素转换为块元素 *//* 该通用代码既可以解决高度塌陷问题,又可以解决垂直外边距合并 */.clearfix::after,.clearfix::before {content: "";display: table;clear: both;}/* 演示clear清除浮动 *//* .outer1 {width: 400px;height: 400px;background-color: #fde6e0;float: left;}.outer2 {width: 300px;height: 300px;background-color: #dce2f1;float: right;}.outer3 {width: 100px;height: 100px;background-color: yellowgreen;clear: both;} */
</head><body><div class="father clearfix"><div class="son"></div></div><!-- <hr><div class="outer1"></div><div class="outer2"></div><div class="outer3"></div> -->
</body></html>

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

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

相关文章

使用Xdisplay将ipad作为扩展显示器Agent闪退问题

1. 正常流程贴子挺多&#xff0c;可以参考这几篇 https://blog.csdn.net/Shi_Xueqing/article/details/129744496 如何将ipad作为win10的扩展屏&#xff08;使用USB线连接&#xff09;_ipad win usb 上网-CSDN博客 2.在进行pc端软件设置的时候发生闪退 解决方法&#xff1a…

Java入门高频考查基础知识9(银盛15问万字参考答案)

JAVA刷题专栏&#xff1a;http://t.csdnimg.cn/9qscL 目录 一、Springcloud的工作原理 三、注册中心心跳是几秒 四、消费者是如何发现服务提供者的 五、多个消费者调⽤用同⼀接口&#xff0c;eruka默认的分配⽅式是什么 六、springboot常用注解&#xff0c;及其实现 七、…

【算法】字符串匹配算法

文章目录 一、字符串匹配1. KMP2. 字符串哈希 一、字符串匹配 记&#xff1a;主串 s s s 长度为 m m m&#xff0c;子串 p p p 长度为 n n n。 1. KMP 暴力的做法&#xff0c;是在当前字符不匹配的时候&#xff0c;主串和子串都回溯&#xff0c;这样做显然是 O ( n m )…

使用R语言glmnet包进行正则化lasso回归

正则化的原理是尽可能多的将数据中的特征塞进最终模型&#xff0c;特征越多越可以更好地解释数据集的错综复杂。在应用正则化后&#xff0c;每个特征对模型部分的解释程度可能完全不同。通过使用正则化可以减少数据集的噪声&#xff0c;这些噪声可能来对最终模型几乎没有形象的…

苍穹外卖启动!

快捷键 Alt Enter&#xff1a;代码补全 ctrl 左键&#xff1a;进入这个方法 401 令牌校验出问题了&#xff0c;因为token过期了&#xff0c;在yml文件里设置的有效时间&#xff0c;过期之后&#xff0c;员工登陆&#xff0c;重新发送一下数据&#xff0c;获取新的token令牌…

车载常见概念

常见概念 ADAS&#xff08;Advanced Driver Assistance Systems&#xff09;是指先进驾驶辅助系统&#xff0c;是指车辆上装备的一系列技术&#xff0c;旨在提高驾驶员的安全性和驾驶舒适度。下面是ADAS中常见的名称和其英文全称和含义&#xff1a; LDWS&#xff08;Lane Depa…

ClickHouse--10--临时表、视图

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.临时表1.1 特征1.2 创建一个临时表 2.视图2.1 普通视图2.2 物化视图 1.临时表 1.1 特征 ClickHouse 支持临时表&#xff0c;临时表具备以下特征&#xff1a; 当…

bat通过ssh增量同步文件夹

要通过 SSH 使用批处理文件&#xff08;.bat&#xff09;进行文件夹的增量同步&#xff0c;你可以使用 rsync 命令&#xff0c;这是一个非常强大的文件同步工具&#xff0c;它支持增量同步。以下是一个简单的批处理脚本示例&#xff0c;该脚本使用 SSH 连接到一个远程服务器&am…

【JAVA WEB】JavaScript(WebAPI)--DOM基本概念 获取元素 点击事件 键盘事件

目录 什么是WebAPI DOM的基本概念 DOM是什么 DOM树 获取元素 querySelector querySelectorAll 事件 事件初识 基本概念 事件三要素 点击事件 键盘事件 什么是WebAPI 前端学习的 JS 分成三个大的部分 ECMAScript&#xff1a;基础语法部分DOM API&#xff1a;操作…

鸿蒙开发系列教程(十九)--页面内动画(2)

组件内转场动画 组件的插入、删除过程即为组件本身的转场过程&#xff0c;组件的插入、删除动画称为组件内转场动画。通过组件内转场动画&#xff0c;可定义组件出现、消失的效果。 transition(value: TransitionOptions) 参数可以定义平移、透明度、旋转、缩放这几种转场样…

评估方法:CMMI/能力成熟度模型集成

一、什么是CMMI CMMI&#xff0c;全称为Capability Maturity Model Integration&#xff0c;即能力成熟度模型集成。它是由美国卡内基梅隆大学软件工程研究所研发的过程改进模型&#xff0c;也是国际上用于评价软件企业能力成熟度的一项重要标准。 CMMI的目的是帮助软件企业对…

中小学信息学奥赛CSP-J认证 CCF非专业级别软件能力认证-入门组初赛模拟题第一套(完善程序题)

CCF认证CSP-J入门组模拟测试题第一套 三、完善程序题 第一题 九宫格 请完善下面的程序,将1~9个数字分别填人3x3的九宫格中,第一行的三个数字组成一个三位数。要使第二行的三位数是第一行的2倍,第三行的三位数是第一行的3倍且每个格子里的数字都不能重复,现在要求输出所有的填…

视觉slam十四讲学习笔记(四)相机与图像

理解理解针孔相机的模型、内参与径向畸变参数。理解一个空间点是如何投影到相机成像平面的。掌握OpenCV的图像存储与表达方式。学会基本的摄像头标定方法。 目录 前言 一、相机模型 1 针孔相机模型 2 畸变 单目相机的成像过程 3 双目相机模型 4 RGB-D 相机模型 二、图像…

【JavaEE】网络原理: UDP协议和TCP协议的相关内容

目录 1. 应用层 2. 传输层 2.1 端口号 2.2 UDP协议 2.3 TCP协议 1.确认应答 2.超时重传 3.连接管理 三次握手 四次挥手 状态转换 4.滑动窗口 5.流量控制 6.拥塞控制 7.延迟应答 8.捎带应答 9.面向字节流 粘包问题 10.异常情况 网络通信中, 协议是一个非常重…

第二十九回 施恩三入死囚牢 武松大闹飞云浦-分布式版本控制系统Git使用

武松要蒋门神答应三件事&#xff1a;离开快活林、东西都归还施恩&#xff0c;公开对施恩赔礼道歉&#xff0c;不许在孟州住。蒋门神不得已都答应了&#xff0c;灰溜溜地离开了孟州城。 一个月之后&#xff0c;天气转凉&#xff0c;张都监调武松到孟州城&#xff0c;做了他的亲…

统计图饼图绘制方法(C语言)

统计图饼图绘制方法&#xff08;C语言&#xff09; 常用的统计图有条形图、柱形图、折线图、曲线图、饼图、环形图、扇形图。 前几类图比较容易绘制&#xff0c;饼图绘制较难。今值此介绍饼图的绘制方法。 本方法采用C语言的最基本功能&#xff1a; &#xff08; 1.&#xff09…

《Docker极简教程》--Docker容器--Docker容器的概念

一、Docker容器的基本概念 1.1 Docker容器是什么&#xff1f; Docker容器是一种轻量级、可移植的虚拟化技术&#xff0c;用于打包、运输和运行应用程序及其所有依赖项。它利用Linux内核的特性&#xff08;如命名空间和控制组&#xff09;来提供隔离性和资源管理&#xff0c;使…

数据结构在JavaScript中的体现

一.概述 数据结构是计算机中存储、组织数据的方式。通常情况下&#xff0c;精心选择的数据结构可以带来最优效率的算法&#xff0c;其实算法并不是一个很高级的东西&#xff0c;它充斥在每一种代码组织方式中&#xff1b;而且各种语言关于数据结构方面的内容都是大同小异的&…

【复现】某某ERP 信息泄露漏洞_49

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 该ERP基于SpringBoot框架和SaaS模式&#xff0c;立志为中小企业提供开源好用的ERP软件&#xff0c;目前专注进销存财务生产功能。…

python制作比大小的程序

这个程序是为了学龄前儿童设计的&#xff0c;规则如下 随机生成两个数&#xff0c;每个数都不相同 第一个数大输入1&#xff0c;第二个数大输入2 代码如下 import random while True: var1random.randint(0,30) var2random.randint(0,30) print(&q…