`

margin叠加原理以及边界条件浅谈

 
阅读更多

 

边界叠加是一个相当简单的概念。但是,在实践中对网页进行布局时,它会造成许多混淆。简单地说,当两个垂直边界相遇时,它们将形成一个边界。这个边界的高度等于两个发生叠加的边界的高度中的较大者。


  当一个元素出现在另一个元素上面时,第一个元素的底边界与第二个元素的顶边界发生叠加,见图:

 


元素的顶边界与前面元素的底边界发生叠加


  当一个元素包含在另一个元素中时(假设没有填充或边框将边界分隔开),它们的顶和/或底边界也发生叠加,见图:

 

 

元素的顶边界与父元素的顶边界发生叠加



  尽管初看上去有点儿奇怪,但是边界甚至可以与本身发生叠加。假设有一个空元素,它有边界,但是没有边框或填充。在这种情况下,顶边界与底边界就碰到了一起,它们会发生叠加,见图:

 



元素的顶边界与底边界发生叠加


  如果这个边界碰到另一个元素的边界,它还会发生叠加,见图:

 

 


空元素中已经叠加的边界与另一个空元素的边界发生叠加


  这就是一系列空的段落元素占用的空间非常小的原因,因为它们的所有边界都叠加到一起,形成一个小的边界。


  边界叠加初看上去可能有点儿奇怪,但是它实际上是有意义的。以由几个段落组成的典型文本页面为例(见图2-8)。第一个段落上面的空间等于段落的顶边 界。如果没有边界叠加,后续所有段落之间的边界将是相邻顶边界和底边界的和。这意味着段落之间的空间是页面顶部的两倍。如果发生边界叠加,段落之间的顶边 界和底边界就叠加在一起,这样各处的距离就一致了

边界叠加在元素之间维护了一致的距离



  只有普通文档流中块框的垂直边界才会发生边界叠加。行内框、浮动框或绝对定位框之间的边界不会叠加。

 

解决思路:将父元素设置一个padding或者border将它们隔开即可解决此问题。

分享到:
评论

相关推荐

    CSS中margin边界叠加问题及解决方案

    **CSS中的Margin边界叠加问题详解** 在CSS布局中,元素之间的间距往往受到margin的影响,而margin边界叠加(Margin Collapsing)是CSS布局中的一个重要概念,它可能导致元素间的间距不符合预期。理解并掌握这一概念...

    浅谈css margin重叠

    父子元素margin重叠 ...以上这篇浅谈css margin重叠就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 原文地址:http://www.cnblogs.com/lj1028/p/5683253.html

    如何解决外边距margin叠加的问题探讨

    根据CSS规范,margin叠加通常发生在以下条件都满足的情况下: 1. 两个或多个块级元素垂直方向排列,它们之间没有被非空内容、padding、border或clear属性分隔开,即它们是毗邻的。 2. 元素的高度和宽度不是由margin...

    DDR_margin测试指导书.doc

    DDR_margin测试指导书.doc

    CSS的margin和padding

    在CSS中,`margin`是一个非常重要的属性,它用于定义元素周围的空间,即元素与元素之间或元素与容器边界的距离。`margin`是透明的,不会影响元素本身的颜色或背景,只是在视觉上提供了间隔。它可以分别设置上、右、...

    margin-left和right失效(斯芬克斯)之谜

    通过阅读更多关于`hasLayout`的文章,如"On having layout"等,可以帮助更全面地理解其背后的原理和触发条件。 #### 五、总结 对于`margin-left`和`margin-right`失效的问题,主要原因是由于IE浏览器中的`...

    margin负值之美

    在本文中,我们将详细讨论`margin`负值的概念、用途以及它在实际项目中的应用。 首先,理解`margin`的基本概念是关键。`margin`允许我们在元素的四周创建空白区域,通过设置`margin`的大小,我们可以调整元素与其他...

    JavaScript设置Div的margin参数

    JavaScript 设置 Div 的 margin 参数 在 HTML 中,我们经常需要设置元素的样式,包括 margin 属性。margin 属性用于设置元素的外边距,而 JavaScript 可以帮助我们动态地设置元素的 margin 属性。 margin 属性可以...

    Firefox下margin-top会出错

    在开发过程中,理解`margin`折叠的概念及其触发条件是非常重要的,它有助于我们更好地控制页面布局,特别是在不同的浏览器环境中保持一致性和可预测性。通过上述介绍的方法,我们可以有效地解决`margin-top`在Fire...

    Intel Rank Margin Test SOP_20181010.docx

    内存行边缘测试是一种在正常温度和电压下的内存测试方案,主要...测试过程需要连接串口工具,记录和分析日志,以确定系统内存的性能边界。对于IT专业人士来说,理解和掌握这一测试方法对于提升系统整体性能至关重要。

    css中margin的缩写

    ### CSS中的Margin属性及其缩写规则 在网页设计与开发中,CSS(层叠样式表)扮演着极其重要的角色,它能够帮助开发者控制网页元素的布局、颜色、字体等样式。其中,`margin`属性是CSS中最常用的一个属性之一,用于...

    理解margin塌陷和margin合并及其解决方案.docx

    我们可以将margin塌陷想象成一种“塌陷”的现象,即子元素在计算其位置时忽略了父元素的部分边界,就好像这部分边界不存在一样。实际上,这是因为浏览器默认按照一定的规则处理相邻或嵌套元素间的外边距,导致了这种...

    android_中_padding与margin

    - 同时,每个`TextView`还设置了`margin`,使得每个视图之间以及与容器底部之间有10dip的距离。 通过以上示例可以看出,`padding`与`margin`的合理搭配使用可以有效地控制视图内外部的空间布局,从而达到美观、协调...

    基于Max-Margin的度量学习代码

    最大间隔(Max-Margin)思想源自支持向量机(SVM),它的核心理念是最大化分类边界,使得训练数据中的正负样本能够被正确地划分,并且保持最大的间隔。在度量学习的上下文中,最大间隔意味着我们试图找到一种距离...

    css中padding、margin两个重要属性的详细介绍及举例说明

    ### CSS中的Padding与Margin属性详解 #### 一、引言 在前端开发中,CSS(层叠样式表)是用于定义HTML文档外观的核心技术之一。其中,`padding`与`margin`是两个至关重要的属性,它们直接影响着网页元素的空间布局...

    高通_AF关于镜头pos与DAC和margin的解析

    高通_AF 关于镜头 pos 与 DAC 和 margin 的解析 本文将对高通_AF 中镜头 pos 与 DAC 和 margin 的解析进行详细的解释。 一、Margin 与 DAC Margin 是一个关键概念,它用来扩展 DAC 的范围,以便 cover 所有的对焦...

    margin 负值引起的层级(z-index)问题

    在IE浏览器中,某些情况下为元素添加layout可能需要人为地创建一个条件,以确保元素能够成为层叠上下文的一部分。 另一方面,对于IE8和其它现代浏览器,可能需要外层元素具有overflow:hidden属性才能达到IE6、IE7中...

    Css padding和margin区别

    这个一个CSS padding和margin的例子,对初学者很有帮助的哦~ .divcss3{border:1px solid #F00;width:400px;margin-left:15px; padding-left:35px;} .box2 { margin-left:10px; padding-left:15px; width:300px...

Global site tag (gtag.js) - Google Analytics