【CSS】margin塌陷和margin合并及其解决方案

【CSS】margin塌陷和margin合并及其解决方案

    • 一、解决margin塌陷的问题
    • 二、避免外边距margin重叠(margin合并)

一、解决margin塌陷的问题

问题当父元素包裹着一个子元素且父元素没有边框的时候,当给子元素设置margin-top:100px,此时不应该看到的是子元素距离父元素顶部100px嘛?为什么是父元素距离body100px?
原因父元素与子元素之间且父元素没有边框,给子元素添加margin-top属性时,此时只是想让子元素的边框距离父元素边框有一段距离,而却出现了父元素的顶端距离body这个边框出现了位移,这就是margin-top塌陷的现象。

	.container{height: 300px;width: 300px;background-color: blue;/* overflow: hidden; */}.box {background: red;height: 100px;width: 100px;margin-top: 50px;}<div class="container"><div class="box"></div></div>

在这里插入图片描述

解决方案:给父元素添加overflow:hidden触发BFC;

	.container{height: 300px;width: 300px;background-color: blue;overflow: hidden; }

在这里插入图片描述

二、避免外边距margin重叠(margin合并)

问题:两个兄弟块元素,一个设置下外边距100px,一个设置上外边距100px,此时它们不应该是相距200px才对嘛?为什么只相距了100px?
原因兄弟之间的元素,垂直方向的margin-bottom和margin-top会合并为单个边距,其大小为单个边距的最大值,如果值一样则值仅为其中一个。这就是外边距重叠现象。

	.box {background: red;height: 100px;width: 100px;}<div class="box" style="margin-bottom: 100px;"></div><div class="box" style="margin-top: 100px;"></div>

在这里插入图片描述
解决办法每个元素放置不同的BFC中,通过overflow: hidden;触发BFC;

	.container {overflow: hidden;}.box {background: red;height: 100px;width: 100px;}<div class="container"><div class="box" style="margin-bottom: 100px;"></div></div><div class="container"><div class="box" style="margin-top: 100px;"></div></div>

在这里插入图片描述

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

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

相关文章

JS实现一键复制、选中复制、选中多行复制

JS实现一键复制 首先我们准备一份通用的一键复制代码&#xff1a; export function copyTextFun(text) {if (!text) return falsevar textarea document.createElement(textarea) textarea.value text document.body.appendChild(textarea) textarea.select() message.dest…

【精选】java继承进阶——继承的特点 this、super

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

5 款提升 UI 设计效率的软件工具

你知道如何选择正确的UI设计软件吗&#xff1f;你知道设计漂亮的用户界面和带来良好用户体验的应用程序需要什么界面设计软件吗&#xff1f;基于APP界面的不同功能&#xff0c;所选择的APP界面设计软件也会有所不同。然而&#xff0c;并不是说所有的APP界面设计软件都非常精通&…

【安卓中kotlin 泛型的基本用法】

泛型的基本用法 泛型主要有两种定义方式&#xff0c;一种是定义泛型类&#xff0c;另一种是定义泛型方法&#xff0c;使用的语法结构都是。当然括号内的T并不是固定要求的&#xff0c;事实上你使用任何英文字母或单词都可以&#xff0c;但是通常情况下&#xff0c;T是一种约定…

VMware16安装CentOS7mini 中遇到的一些问题

1、安装后网络不通解决方法&#xff1a; 修改这个文件/etc/sysconfig/network-script/ifcfg-ens33下ONBOOTno这个选项为yes&#xff1b;重启网络service network restartping baidu.com 2、安装的CentOS mini 系统少了很多软件需要安装&#xff0c;联网后一般采用网络安装 y…

Leetcode02.05:链表求和

一、题目描述 给定两个用链表表示的整数&#xff0c;每个节点包含一个数位。 这些数位是反向存放的&#xff0c;也就是个位排在链表首部。 编写函数对这两个整数求和&#xff0c;并用链表形式返回结果。 示例&#xff1a; 输入&#xff1a;(7 -> 1 -> 6) (5 -> 9 -…

【C语言】贪吃蛇 详解

该项目需要的技术要点 C语言函数、枚举、结构体、动态内存管理、预处理指令、链表、Win32API等。 由于篇幅限制 和 使知识模块化&#xff0c; 若想了解 使用到的 Win32API 的知识&#xff1a;请点击跳转&#xff1a;【Win32API】贪吃蛇会使用到的 Win32API 目录 1. 贪吃蛇游…

02.02_111期_C++_数据内存分布笔记

operator new 和 operator delete是系统提供的全局函数 operator new是对malloc的封装 operator deleter是对free的封装 实际上在写出int* p2 new int;这样的代码的时候&#xff0c; 由于new是一个操作符&#xff0c;所以在编译的时候要转成对应的指令 转成的指令就是opera…

yolo导出的onnx怎么使用onnxruntime调用

1.上几篇文件&#xff0c;写了怎样标注数据&#xff0c;获取yolo数据&#xff0c;怎样训练数据。这篇文章写下&#xff0c;怎样使用yolo训练好的网络进行推理&#xff0c;怎样使用onnxruntime调用网络推理。 2.yolo模型训练后推理&#xff0c;主要分两种&#xff0c;一种是使用…

系统设计认知与常用方法(架构设计)

系统设计应该着重解决什么问题、回应哪些关切、如何演进、常用设计方法、如何落地&#xff1f; 系统设计认知 设计是需求与开发的连接点 解决复杂度 本质复杂度&#xff1a;问题本身的固有复杂度&#xff08;不可避免&#xff09;衍生复杂度&#xff1a;解决方法引入的额外…

HTTP相关问题

目录 1.从输入URL到页面展示到底发生了什么&#xff1f; 2.HTTP状态码有哪些&#xff1f; 2.1 2XX(成功状态码) 2.2 3XX(重定向状态码) 2.3 4XX(客户端错误状态码) 2.4 5XX(服务端错误状态码) 3.HTTP 请求头中常见的字段有哪些&#xff1f; 4.HTTP和HTTPS有什么区别&…

vue3-内置组件-Transition

基于状态变化的过渡和动画&#xff08;常用&#xff09; 建议多看几遍~~。然后动手去写写&#xff0c;学编程只有多动手才能有感觉。 内置组件: 它在任意别的组件中都可以被使用&#xff0c;无需注册。 Vue 提供了两个内置组件&#xff0c;可以帮助你制作基于状态变化的过渡和动…

EMC测试介绍

EMC测试介绍 EMC包括电磁干扰(EMI) 和抗电磁干扰(EMS)两个部分。发射干扰传导发射测试极限线以峰值检坡器测量时使用的决策树应用EN55022标准的波形示例测试仪器![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4580f693ae9a4f84891ece29681c7bf2.png) 辐射发射测试…

如何快速捕获和验证用户软件需求,实现快速迭代

在软件开发过程中&#xff0c;快速捕获和验证用户需求&#xff0c;以及迅速迭代功能&#xff0c;是保持项目敏捷性和用户满意度的关键。下面将介绍一些建议&#xff0c;帮助你在软件开发过程中更有效地满足用户需求。 1. 深入沟通与用户互动 要捕获用户需求&#xff0c;必须与…

Lua可变参数函数

基础规则 lua传入参数给一个function时采用的是“多余部分被忽略&#xff0c;缺少部分有nil补足”的形式&#xff1a; function f(a, b)return a or b endCALL PARAMETERS f(3) a3, bnil f(3, 4) a3, b4 f(3, 4, 5) a3, b4 (5 is discarded) unpack/pack…

CPU对数据库的性能影响

最近做了个CPU性能测试&#xff0c;测试语句如下 select count(*) from test01; ---44537344行数据&#xff0c;大概5.6GB 设置了参数alter system set "_serial_direct_read"never; 避免direct path read 为了避免物理IO的影响&#xff0c;多次反复运行&#xff0c;…

react 之 react.memo

React.memo 作用&#xff1a;允许组件在props没有改变的情况下跳过重新渲染 组件默认的渲染机制 默认机制&#xff1a;顶层组件发生重新渲染&#xff0c;这个组件树的子级组件都会被重新渲染 // memo // 作用&#xff1a;允许组件在props没有改变的情况下跳过重新渲染import…

敏捷开发交付绩效度量

在快速敏捷开发模式下&#xff0c;主要是要求技术能够快速响应&#xff0c;但并不是对质量没有要求&#xff0c;那么在又快又要质量好的前提下&#xff0c;如何去度量&#xff1f; 主要参考文章&#xff0c;软件交付效能度量 - Thoughtworks洞见 说明&#xff1a;如何在敏捷开…

npm淘宝镜像源换新地址

新的淘宝npm镜像源地址&#xff1a;https://registry.npmmirror.com 切换新的镜像源 npm config set registry https://registry.npmmirror.com然后再执行以下操作查看是否成功 npm config list如果没安装过淘宝镜像源的&#xff0c;则直接安装 npm install -g cnpm --regi…

JVM 性能调优 - 参数调优(3)

查看 JVM 内存的占用情况 编写代码 package com.test;public class PrintMemoryDemo {public static void main(String[] args) {// 堆内存总量long totalMemory Runtime.getRuntime().totalMemory();// jvm 试图使用的最大堆内存long maxMemory Runtime.getRuntime().maxM…