iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >div外边距重合问题如何解决
  • 925
分享到

div外边距重合问题如何解决

2024-04-02 19:04:59 925人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“div外边距重合问题如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“div外边距重合问题如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。CS

本文小编为大家详细介绍“div外边距重合问题如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“div外边距重合问题如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

div外边距重合问题如何解决

CSS 外边距重叠(外边距塌陷)

块的上外边距(margin-top)和下外边距(margin-bottom)有时合并(折叠)为单个边距,其大小为单个边距的最大值(或如果它们相等,则仅为其中一个),这种行为称为边距折叠。

边界重叠是指两个或多个盒子(可能相邻也可能嵌套)的相邻边界(其间没有任何非空内容、补白、边框)重合在一起而形成一个单一边界。

换句话说,外边距重叠是指两个垂直相邻的块级元素,当上下两个边距相遇时,起外边距会产生重叠现象,且重叠后的外边距,等于其中较大者。

margin值重叠计算的方法:

  • margin值都为正,取两者的最大的值。

  • 出现负边界,用最大的正边界减去绝对值最大的负边界。

  • 如果没有正边界,则从零中减去绝对值最大的负边界。

一、哪些元素会发生外边距重叠问题

外边距的重叠只产生在普通流文档上下外边距之间, 只有 块元素 会发生外边距重叠,行内元素行内块元素 都不会发生外边距重叠问题

二、什么情况下会发生外边距重叠呢

第一种情况: 相邻兄弟元素的marin-bottom和margin-top的值发生重叠

发生边界重叠,只会挑选最大边界范围留下,所以两者之间的边距为100px
如果需要解决这个边界重叠问题,则需在后一个元素加上float 或 给其中一个兄弟套上一个p,设置border:1px solid white;

<p id="box1"></p>
<p id="box2"></p>

#box1{
     width: 200px;
     height: 200px;
     background: lemonchiffon;
     margin-bottom: 50px;
     margin-top: 50px;
 }
 #box2{
     width: 200px;
     height: 200px;
     background: lightcoral;
     margin-top:100px ;
     opacity: 0.3;
     float: left;   //加上float后,两者间距为150px
 }

第二种情况:父级和第一个/最后一个子元素的margin合并

<p id="box1">
   <p id="box3"></p>
</p>
#box1{
     width: 200px;
     height: 200px;
     background: lemonchiffon;
     margin-top: 50px;
 }
 #box3 {
   width: 100px;
   height: 100px;
   background-color: #f12416;
   margin-top: 50px;
 }

例子的效果如下图:

div外边距重合问题如何解决

当同时设父元素和子元素的margin-top都为50px时,父元素和子元素都距离边界50px,而不是我们认为的子元素距离父元素50px。

当父元素不设置上边距,子元素设置margin-top为50px时,此时还是父子元素距离顶端50px

解决方法:

方法一:给父元素加overflow:hidden;

这种方法解决了我们外边距重叠问题,但是这个方法只适用于 “子元素的高度加上外边距高度小于父元素高度(childHeight +margin-top<parentHeight)” ,不然子元素部分内容就会被隐藏掉

方法二:给父元素加边框 border(可以加个透明的边框)

方法三:给父级或者子级设置display:inline-block;

既然只有块元素会产生外边距重叠,那么我们就让它不是块元素,把它设置为行内块元素

方法四:给父级或者子级设置float

方法五:给父级或者子级设置position: absolute;

方法六:给父元素添加padding

#box1{
     width: 200px;
     height: 200px;
     background: lemonchiffon;
     margin-top: 50px;
     
     
     
     
     
     
 }
 #box3 {
        width: 100px;
        height: 100px;
        background-color: #f12416;
        margin-top: 50px;
        
        
        
    }

第三种情况:空的块级元素

自身的margin-top和margin-bottom发生的重叠。我们可以通过为其设置border、pa
dding或者高度来解决这个问题。

  <p id="box1"></p>
  <p id="box2"></p>
  <p id="box3"></p>
  <style>
 #box1{
      width: 200px; height:200px;
      background:lightseagreen;
      margin-bottom:50px ;
    } 
    #box2{
      margin-top: 20px;
      margin-bottom:20px ;
      border: 1px solid salmon; //加了border或padding后,与上下两个元素的间距分别为50px和100px,没加之前,上下两个元素的间距为100px
      
    }
    #box3{
      width: 200px; height:200px;
      background:darkGoldenrod;
      margin-top:100px ;
    }

加了border或padding后,与上下两个元素的间距分别为50px和100px,没加之前,上下两个元素的间距为100px

第四种情况: 高度为auto的父元素的margin-bottom和子元素的margin-bottom发生重叠

父元素设置border-bottom、padding-bottom来分隔它们,也可以为

父元素设置一个高度,max-height和min-height也能解决这个问题

三、外边距重叠是怎么算的

  • 全部都为正值,取最大者;

  • 不全是正值,则都取绝对值,然后用正值减去最大值;

  • 没有正值,则都取绝对值,然后用0减去最大值。

读到这里,这篇“div外边距重合问题如何解决”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网JavaScript频道。

--结束END--

本文标题: div外边距重合问题如何解决

本文链接: https://www.lsjlt.com/news/98416.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • div外边距重合问题如何解决
    本文小编为大家详细介绍“div外边距重合问题如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“div外边距重合问题如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。CS...
    99+
    2024-04-02
  • margin外边距合并如何解决
    这期内容当中小编将会给大家带来有关margin外边距合并如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、兄弟元素的外边距合并效果图如下:(二者之间的间距为100px,不是150px)二、嵌套元素...
    99+
    2023-06-08
  • Css中如何合并外边距
    这篇文章将为大家详细讲解有关Css中如何合并外边距,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一般发生外边距合并主要有以下三种情况:1.相邻兄弟姐妹元素两个兄弟元素之间...
    99+
    2024-04-02
  • css如何实现外边距合并
    这篇文章主要介绍了css如何实现外边距合并,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 外边距分开(叠加)是一个相称容易的观点。然则,在...
    99+
    2024-04-02
  • 如何在CSS中防止外边距重叠
    今天就跟大家聊聊有关如何在CSS中防止外边距重叠,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。但是边界的重叠也有例外情况:水平边距永远不会重合。在规范文档中,2个或以上的块级盒模型相...
    99+
    2023-06-08
  • CSS中出现外边距塌陷如何解决
    CSS中出现外边距塌陷如何解决?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。首先我们先看出现外边距塌陷的三种情况:当上下相邻的两个块级元素相遇,上面的元素有下边距margin-...
    99+
    2023-06-08
  • 如何使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
    小编给大家分享一下如何使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了...
    99+
    2024-04-02
  • html如何解决IE6浮动元素的双倍边距问题
    这篇文章主要为大家展示了“html如何解决IE6浮动元素的双倍边距问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html如何解决IE6浮动元素的双倍边距问题”这篇文章吧。解决IE6 的浮动元...
    99+
    2023-06-27
  • 如何解决div里的图片距离div下边框多3个像素
    这篇文章主要讲解了“如何解决div里的图片距离div下边框多3个像素”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何解决div里的图片距离div下边框多3...
    99+
    2024-04-02
  • 同级DIV重叠问题怎么解决
    本文小编为大家详细介绍“同级DIV重叠问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“同级DIV重叠问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 红色...
    99+
    2024-04-02
  • 如何解决搜索框和搜索按钮button边框不能重合的问题
    这篇文章主要介绍了如何解决搜索框和搜索按钮button边框不能重合的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。今天在用百度页面做练习的时候突然发现,尽管设置了搜索框和...
    99+
    2023-06-08
  • 如何解决li行间距大的问题
    这篇文章主要介绍“如何解决li行间距大的问题”,在日常操作中,相信很多人在如何解决li行间距大的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何解决li行间距大的问题”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-08
  • CSS DIV弹出层问题如何解决
    这篇文章主要讲解了“CSS DIV弹出层问题如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS DIV弹出层问题如何解决”吧!DIV弹出层问题解决方案一、关于如何让png背景在IE...
    99+
    2023-07-04
  • firefox中div重叠覆盖之前ul的问题如何解决
    这篇文章主要介绍“firefox中div重叠覆盖之前ul的问题如何解决”,在日常操作中,相信很多人在firefox中div重叠覆盖之前ul的问题如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2024-04-02
  • CSS如何解决DIV居中相关问题
    这篇文章主要介绍CSS如何解决DIV居中相关问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!用CSS解决DIV居中问题一,用CSS使DIV层水平居中对需要水平居中的DIV层添加以下...
    99+
    2024-04-02
  • 如何解决firefox中div+css的外层背景色不见的问题
    这篇文章主要介绍“如何解决firefox中div+css的外层背景色不见的问题”,在日常操作中,相信很多人在如何解决firefox中div+css的外层背景色不见的问题问题上存在疑惑,小编查阅了各式资料,整...
    99+
    2024-04-02
  • 如何解决img标签之间的间距问题
    小编给大家分享一下如何解决img标签之间的间距问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!img标签基础解析在HTML5中...
    99+
    2024-04-02
  • 小程序瀑布流如何解决左右两边高度差距过大的问题
    这篇文章主要介绍小程序瀑布流如何解决左右两边高度差距过大的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!想要实现瀑布流的布局效果,并且是按照从左到右顺序显示的话,css布局方式暂...
    99+
    2024-04-02
  • 如何解决移动端1px边框的问题
    这篇文章主要为大家展示了“如何解决移动端1px边框的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决移动端1px边框的问题”这篇文章吧。当然了,在这之...
    99+
    2024-04-02
  • 如何解决重复内容问题
    重复内容是SEO中常见的问题,它可能影响搜索引擎排名和网站信誉。解决重复内容问题主要包括:1、内容审查和识别、2、使用Canonical标签、3、301重定向、4、添加无索引元标签、5、优化内部链接结构、6、利用搜索引擎控制台工具。定期检查...
    99+
    2023-10-29
    如何解决 内容
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作