当前位置: 首页 > article >正文

【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.kler.cn/a/232369.html

相关文章:

  • ESP8266-01S、手机、STM32连接
  • JetPack——databing
  • SpringBoot多级配置文件
  • nginx 配置防爬虫
  • 20250118拿掉荣品pro-rk3566开发板上Android13下在uboot和kernel启动阶段的Rockchip这个LOGO标识
  • FastADMIN实现网站启动时执行程序的方法
  • K8S之Pod常见的状态和重启策略
  • java实战:销售订单号自动生成
  • c++ 子进程交互 逻辑
  • leetCode 30天
  • 红队打靶练习:PHOTOGRAPHER: 1
  • 【PyTorch】实现迁移学习框架DaNN
  • 利用低代码 BI 平台获得竞争优势:实现数据分析与业务决策的革新
  • 休斯顿NASA太空机器人进入最后测试阶段,或可模拟人类执行外星任务!
  • MySQL基础查询篇(7)-常用的字符串函数
  • Openresty+Lua+Redis实现高性能缓存
  • Android SDK 上传 Maven 喂奶级教程
  • 前端滚动组件分享
  • 深入理解Netty及核心组件使用—上
  • 机器学习10-特征缩放
  • 记录下ibus-libpinyin输入法的重新安装
  • three.js 箭头ArrowHelper的实践应用
  • Python第三方库国内下载镜像源地址
  • react中hook封装一个table组件
  • Java项目管理01-Maven基础
  • Mac安装nvm装完项目内node找不到