CSS查缺补漏之如何优雅解决margin垂直方向塌陷与合并问题?

news2024/7/4 23:11:01

一:父子元素之间margin垂直方向塌陷问题

在处理margin垂直方向问题时,经常会遇到在给子元素设置margin时,导致效果出现在了父元素上;如下代码所示:

代码原义是想实现三方面:

① 将box1的margin-top调为50px,使其与父元素之间形成空隙;

② 将box2的margin-top调为20px,使其与兄弟元素box1之间形成空隙;

③ 将box3的margin-bottom调为20px,使其与父元素之间形成空隙;

<div class="box">
  <div class="box1">box1</div>
  <div class="box2">box2</div>
  <div class="box3">box3</div>
</div>
    .box {
      width: 400px;
      height: 400px;
      background-color: antiquewhite;
      text-align: center;
    }
    .box1 {
      margin-top: 50px;
      width: 100px;
      height: 100px;
      line-height: 100px;
      background-color: rgba(0, 115, 255, 0.39);
    }
    .box2 {
      width: 100px;
      height: 100px;
      line-height: 100px;
      background-color: rgba(0, 255, 51, 0.232);
      margin-top: 20px;
    }
    .box3 {
      width: 100px;
      height: 100px;
      line-height: 100px;
      background-color: rgba(255, 196, 0, 0.232);
      margin-bottom: 20px;
    }

 

 从上述代码可以看到,效果出现与预期不同的情况:

① 给第一个子元素box1设置了margin-top值后,并没有起作用,却导致了父元素的margin-top存在;

该种情况被称为父子元素在垂直方向的margin塌陷问题,如何解决此问题?

有三种方法:

给父元素设置不为0的padding值

.box {
   width: 400px;
   height: 400px;
   background-color: antiquewhite;
   text-align: center;
   padding: 2px;
}

 ② 给父元素设置宽度不为0的border值

.box {
   width: 400px;
   height: 400px;
   background-color: antiquewhite;
   text-align: center;
   border-top: 1px solid red;
}

 

 或

.box {
   width: 400px;
   height: 400px;
   background-color: antiquewhite;
   text-align: center;
   border: 1px solid red;
}

 

③ 给父元素设置CSS样式overflow: hidden

.box {
   width: 400px;
   height: 400px;
   background-color: antiquewhite;
   text-align: center;
   overflow: hidden;
}

二:兄弟元素之间margin垂直方向合并问题

在处理兄弟元素问题时,若上面的兄弟元素设置了margin-bottom下面的兄弟元素设置了margin-top,则最后的margin值会取二者之间的最大值,而不是将二者相加,该种现象称为margin合并问题;

 <div class="box">我是box元素</div>
 <div class="bro">我是box的兄弟元素</div>
    div {
      height: 200px;
      line-height: 200px;
      width: 200px;
      text-align: center;
    }
    .box {
      background-color: aquamarine;
      margin-bottom: 40px;
    }
    .bro {
      background-color: rgb(234, 250, 57);
      margin-top: 20px;
    }

     

可以看到,在二者之间只有40px的空隙,产生了合并现象。如何解决此问题?

最好的方法是指设置一个,计算好兄弟元素之间的margin,只设置一方即可~

 

如上述代码只给第一个兄弟元素添加margin-bottom为60px即可,

    div {
      height: 200px;
      line-height: 200px;
      width: 200px;
      text-align: center;
    }
    .box {
      background-color: aquamarine;
      margin-bottom: 60px;
    }
    .bro {
      background-color: rgb(234, 250, 57);
      /* margin-top: 20px; */
    }

  

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

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

相关文章

从实现到原理,总结11种延迟任务的实现方式(上)

1 前言 延迟任务在我们日常生活中比较常见&#xff0c;比如订单支付超时取消订单功能&#xff0c;又比如自动确定收货的功能等等。 所以本篇文章就来从实现到原理来盘点延迟任务的11种实现方式&#xff0c;这些方式并没有绝对的好坏之分&#xff0c;只是适用场景的不大相同。…

高频前端React面试题汇总

近期整理了一下高频的前端面试题&#xff0c;分享给大家一起来学习。如有问题&#xff0c;欢迎指正&#xff01; 一、组件基础 1. React 事件机制 <div onClick{this.handleClick.bind(this)}>点我</div>React并不是将click事件绑定到了div的真实DOM上&#xff0…

ChatGPT+Mermaid自然语言流程图形化产出小试 | 京东云技术团队

ChatGPTMermaid语言实现技术概念可视化 本文旨在介绍如何使用ChatGPT和Mermaid语言生成流程图的技术。在现代软件开发中&#xff0c;流程图是一种重要的工具&#xff0c;用于可视化和呈现各种流程和结构。结合ChatGPT的自然语言处理能力和Mermaid的简单语法&#xff0c;可以轻…

【北邮国院大三下】Intellectual Property Law 知识产权基础 Week3

北邮国院大三电商在读&#xff0c;随课程进行整理知识点。仅整理PPT和相关法条中相对重要的知识点&#xff0c;个人认为相对不重要的细小的知识点不列在其中。如有错误请指出。转载请注明出处&#xff0c;祝您学习愉快。 如需要pdf格式的文件请私信联系或微信联系 本Week的主…

供应链|多期库存系统中具有销售损失的最优联合补货和转运策略

封面图来源&#xff1a; https://www.pexels.com/photo/aerial-shot-of-cargo-ship-on-sea-3840441/ 作者&#xff1a;Hossein Abouee-Mehrizi, Oded Berman, Shrutivandana Sharma 引用&#xff1a;Abouee-Mehrizi, H., Berman, O., & Sharma, S. (2015). Optimal joint r…

马原第三章复习2.生产力和生产关系

目录 社会基本矛盾和运动规律 社会基本矛盾和运动规律 这两个问题是最重点 生产力和生产关系 经济基础和上层建筑 生产力和生产关系 生产力是生产的能力 生产力是人类在实践中形成的改造自然使其适应自然的能力 生产力包含两个重要的要素:三要素 劳动

年化收益 21%:lightGBM的WFA滚动训练,使用qlib的alpha158因子集

原创文章第242篇&#xff0c;专注“个人成长与财富自由、世界运作的逻辑与投资"。 开始之前&#xff0c;先说说感受。 把整个框架与思路都在社群里开源出来&#xff0c;就是希望大家看懂思路&#xff0c;而不是拿一两个策略。说实话&#xff0c;投资哪有这种高确定性的“…

通义听悟上线,强大的视频会议和学习直播分析能力,人工智能如何改变我们的生活和工作方式?

什么是通义听悟 通义听悟已开启公测&#xff0c;公测期&#xff08;2023年6月1日至30日&#xff09;用户可体验所有AI功能&#xff0c;含全文概要、章节速览、发言总结等高阶AI功能&#xff0c;通过阿里云主账号登录。 官方给的应用场景&#xff1a; 1、实时会议记录&#x…

4.MySQL表的增删改查(进阶)

文章目录 &#x1f36f;1. 数据库约束&#x1f36f;&#x1f34e;1.1 约束类型&#x1f34e;&#x1f34f;1.2 NULL约束&#x1f34f;&#x1f34a;1.3 UNIQUE&#xff1a;唯一约束&#x1f34a;&#x1f34b;1.4 DEFAULT&#xff1a;默认值约束&#x1f34b;&#x1f352;1.5 …

MySQL数据库语言三、DCL语句

&#x1f618;作者简介&#xff1a;正在努力的99年公司职员。 &#x1f44a;宣言&#xff1a;人生就是B&#xff08;birth&#xff09;和D&#xff08;death&#xff09;之间的C&#xff08;choise&#xff09;&#xff0c;做好每一个选择。 &#x1f64f;创作不易&#xff0c;…

绩效管理的本质是激发员工,而不是扣工资!

绩效管理是企业管理中非常重要的一个环节&#xff0c;通过对员工表现进行评估和奖励&#xff0c;可以提高整个团队的士气和生产力。 然而&#xff0c;在实际操作中&#xff0c;有些企业却将绩效管理变成了惩罚员工的手段&#xff0c;甚至使用绩效扣除员工的薪水。这种做法不仅…

VALSE 2023:版面分析技术如何赋能生产生活?

目录 0 写在前面1 文档版面分析2 版面元素检测3 文档排版引擎总结 0 写在前面 VALSE年度研讨会旨在为中国青年学者在计算机视觉、图像处理、模式识别与机器学习研究领域提供一个具有深度的学术交流平台。VALSE秉持理性批判、勇于探索、实证和创新等科学精神&#xff0c;倡导自…

光伏电池建模及温度光照的影响曲线

光伏电池建模及温度光照的影响MATLAB程序及仿真资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87910193模型介绍&#xff1a; 需要MATLAB2018B及以上的版本&#xff01;&#xff01; 首先根据根据环境修正公式搭建光伏电池仿真模型&#xff1a; 温度变化…

传统机器学习算法解析(opencv实现)

前言 文本主要解析在传统机器学习当中一些小的算法与思想&#xff0c;只是传统机器学习算法当中的一小部分&#xff0c;更多传统机器学习算法可参考我的另外几篇博客 链接1: PCA主成分分析 链接2: Canny边缘检测算法 链接3: K-Means聚类算法 链接4: SIFT算法分析 1. opencv …

MMDeploy安装和pth转ONNX

参考&#xff1a; https://github.com/open-mmlab/mmdeploy/blob/main/README_zh-CN.md MMDeploy安装指导 MMDeploy 是 OpenMMLab 模型部署工具箱&#xff0c;为各算法库提供统一的部署体验。基于 MMDeploy&#xff0c;开发者可以轻松从训练 repo 生成指定硬件所需 SDK&#…

0x80080005 windows更新失败导致的net framework3.5安装失败

缘起 客户安装应用软件提示需要安装net framework3.5 sp1,但是下载了net framework的安装包后一直提示正在下载中&#xff0c;后来发现系统的windows更新功能都用不了&#xff0c;真的是坑啊。 解决方案 按Windows按键&#xff08;田字按键&#xff09;X&#xff0c;选择Powe…

2023-6-15-第六式适配器模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

如何通过java程序获取表的自增主键值?

获取自增主键&#xff1a; 在 Java 程序中&#xff0c;使用 JDBC 插入记录到 MySQL 数据库时&#xff0c;可以通过以下步骤获取自增主键的值&#xff1a; 第一步&#xff1a;在 PreparedStatement 对象中添加 Statement.RETURN_GENERATED_KEYS 常量作为参数&#xff0c;表示希…

Zabbix与信创、云原生、高可用等热点解析|Zabbix大会·上海站

根据信通院调研显示&#xff0c;超过90%的中国金融机构已经引入开源软件。工信部突出强调开源在驱动软件产业发展的重要作用。作为一个完全开源免费的企业级监控解决方案&#xff0c;Zabbix在IT基础监控、网络监控、Server监控和云监控等领域都获得了同行和用户极高的评价。 Za…

html好看的登录页面1(十三种风格登录页面源码)

文章目录 1.登录风格效果说明1.1 背景凹起风登录界面1.2 弹出风登录界面1.3 科技时尚风登录界面1.4 蓝色一夏风登录界面1.5 模糊背景左右风登录界面1.6 上中下介绍风登录界面1.7 深沉科技风登陆界面1.8 舒适简洁风登录界面1.9 网站风登录界面1.10 小框清爽风登录界面1.11 夜色风…