【CSS面试题】外边距折叠的原因和解决

参考文章

什么时候出现外边距塌陷

外边距塌陷,也叫外边距折叠,在普通文档流中,在垂直方向上的2个或多个相邻的块级元素(父子或者兄弟)外边距合并成一个外边距的现象,不过只有上下外边距才会有塌陷,左右外边距不会出现这种问题。
两种情况:

  1. 父子元素:子元素添加margin-top,但子元素并没有和父元素产生间隔,margin-top作用在了父盒子上
<template><div class="father"><div class="son"></div></div>
</template><script setup>import { ref, reactive } from 'vue'
</script>
<style lang="scss" scoped>.father {width: 500px;height: 300px;background-color: pink;.son {width: 100px;height: 100px;margin-top: 200px;background-color: skyblue;}}
</style>

在这里插入图片描述
或者父盒子和子盒子都添加margin-top,最后合并为一个margin-top取最大值,而不是2者之和

  .father {width: 500px;height: 300px;margin-top: 200px; //!!!background-color: pink;.son {width: 100px;height: 100px;margin-top: 100px; //!!background-color: skyblue;}}

在这里插入图片描述

  1. 兄弟元素:margin-bottom和margin-top合并,取最大值
<template><div class="box1"></div><div class="box2"></div>
</template><script setup>import { ref, reactive } from 'vue'
</script>
<style lang="scss" scoped>.box1 {width: 100px;height: 100px;margin-bottom: 100px;background-color: skyblue;}.box2 {width: 100px;height: 100px;margin-top: 100px;background-color: orange;}
</style>

在这里插入图片描述

具体的外边距计算方式

1.两个都是正数,取较大的值
2.两个都是负数,取绝对值较大的值
3.一正一负,取两个值得和

为什么会出现外边距塌陷

怎么解决外边距塌陷

父子关系

让他们不在同一个BFC中

1. 父元素不用margin,用padding

2. 给父元素添加border

相当于加了一堵墙不让margin-top冲出去

3. 给父元素开启BFC

开启BFC共有7种方式,具体介绍,点击进入

4. 给父元素添加clearfix

注意这里是before,换成after不好用
&::before {
display: grid;
content: ‘’;
}

<style lang="scss" scoped>.father {width: 500px;height: 400px;// overflow: hidden;background-color: pink;&::before {display: grid;content: '';}.son1 {width: 100px;height: 100px;margin-top: 100px;background-color: skyblue;}}
</style>

兄弟关系

加上BFC外壳

1. 只给一个元素设置边距

2.

1.给下面的元素
position设置为absolute或者fixed
2.下面的元素设置左浮动
(1,2)会影响后面的元素
3.给下面的元素设置display:inline-block
4.其中一个元素外套一个div并设置overflow:hidden;

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

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

相关文章

都2024年了还不会vue3?从0到1 用vite搭建vue3项目,开箱即用

Vue.js&#xff08;通常简称为Vue&#xff09;是一个开源的JavaScript框架&#xff0c;用于构建用户界面和单页应用程序&#xff08;SPA&#xff09;。它于2014年首次发布&#xff0c;由Evan You创建&#xff0c;旨在提供一个更轻量、更易于学习的前端框架。Vue的核心库专注于视…

工业界真实的推荐系统(小红书)-排序:精排(模型、特征、融分公式、数据服务)、粗排(三塔模型)

课程特点&#xff1a;系统、清晰、实用&#xff0c;原理和落地经验兼具 b站&#xff1a;https://www.bilibili.com/video/BV1HZ421U77y/?spm_id_from333.337.search-card.all.click&vd_sourceb60d8ab7e659b10ea6ea743ede0c5b48 讲义&#xff1a;https://github.com/wangsh…

51-30 World Model | 自动驾驶的世界模型:综述

24年3月&#xff0c;澳门大学和夏威夷大学联合发布的工作&#xff0c;World Models for Autonomous Driving: An Initial Survey。花时间反复看了几遍&#xff0c;刚开始觉得世界模型没用&#xff0c;空洞无序&#xff0c;根本不可能部署到实车上&#xff0c;后面逐渐相信&…

msvcp100.dll文件丢失的多种解决手法,讲解四种比较靠谱的修复方法

在本次讨论中&#xff0c;我们将深入探讨电脑中出现msvcp100.dll文件丢失的各种可能原因&#xff0c;并且提供详尽的步骤介绍&#xff0c;帮助你理解并解决msvcp100.dll缺失问题的修复方案。通过这些方法&#xff0c;即使遇到此类问题&#xff0c;你也能够有效地恢复文件&#…

AI智能分析网关V4烟火识别技术在沿街商铺消防安全管理中的应用

一、背景需求 2024年3月13日&#xff0c;廊坊三河市燕郊镇一炸鸡店发生疑似燃气泄漏引发的爆燃事故&#xff0c;应急、消防、卫健等有关部门第一时间赶赴现场全力救援处置。目前现场搜救工作已经结束&#xff0c;事故善后处置、原因调查等工作正在进行中。本次事故也引发了社会…

【linux深入剖析】操作系统与用户之间的接口:自定义简易shell制作全过程

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 1.shell2.自定义shell的准…

基于SpringBoot的“家乡特色推荐系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“家乡特色推荐系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 用户注册界面图 文章分享界面…

DUSt3R 图生模型 代码使用流程

DUSt3R 图生模型 代码使用流程 1、创建虚拟环境 1、创建&#xff1a;conda create -n dust3r python3.11 cmake3.14.0 2、激活&#xff1a;conda activate dust3r 2、安装对应的 pytorch、CUDA conda install pytorch torchvision torchaudio pytorch-cuda12.1 -c pytorch -…

雷卯推荐基于USB 快充(USB-PD) 浪涌保护器件

USB PD 从2010年USB BC1.2 &#xff1a;单一5V 1.5A&#xff0c;到2021 年USB PD 3.1&#xff0c;支持电压 5V、9V、15V 和 20V&#xff0c;28V、36V 和 48V, 充电功率同步提升至240W。应用范围从从手机、平板电脑、笔记本电脑&#xff0c;逐渐向显示器、服务器、电机驱动和通信…

26-1 SQL 注入攻击 - delete注入

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、注入原理: 对于后台来说,delete操作通常是将对应的id传递到后台,然后后台会删除该id对应的数据。 如果后台没有对接收到的 id 参数进行充分的验证和过滤,恶意用户可能会…

用机床测头为什么能提升加工中心精度?提高生产效率?

制造业的蓬勃发展为企业提出了更高的精度和效率要求。在现代制造业中&#xff0c;机床测头作为一种关键的检测装置&#xff0c;能够实时监控加工过程中的误差&#xff0c;及时调整&#xff0c;保证加工质量的稳定性&#xff0c;提高加工中心的精度&#xff0c;进而提升生产效率…

①【Docker】Linux安装Docker容器教程

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ ①【Docker】Linux安装Docker容器教程 &#x…