首先抛出问题:
-
Margin on child element moves parent element
-
Child elements with margins within DIVs
其实: 以上问题都源于css中的margin collapse,即外边距叠加。 以下内容源于css mastery second edition。
margin collapse发生的条件有,处于normal flow(正常文档流,而非postion: float || absolute),block元素间的垂直margin(margin-top, margin-bottom)。所以可以改变元素的定位(增加float属性或position: absolute)来取消margin collapse.
下面是margin collapse的几种情况:
1. 上下两div(上定义有margin-bottom, 下有margin-top): 叠加取较大的margin值

2. margin collapse发生在父元素和子元素之间,前提是垂直边距间不存在padding(内边距)和边框。所以可以通过增加padding属性,或边框,防止叠加。如例子者也。

3. margin collapse会发生在定义有垂直外边距的空元素,如下图

叠加也是连续的:

以上是margin collapse发生的几种情况。
其实 margin collapse 的存在有他自身的意义:

补充:margin边界叠加问题以及ie和Firefox的不同解释

- 大小: 46.1 KB

- 大小: 34.1 KB

- 大小: 22.1 KB

- 大小: 28.5 KB

- 大小: 72.9 KB
分享到:
相关推荐
CSS margin(外边距) CSS margin(外边距)属性定义元素周围的空间。 margin margin 清除周围的(外边框)元素区域。margin 没有背景颜色,是完全透明的。 margin 可以单独改变元素的上,下,左,右边距,也可以一次...
在网页设计的世界中,CSS扮演着至关重要的角色,其中外边距(margin)的管理是布局中不可忽视的一部分。外边距叠加(Margin Collapsing)现象是初学者和经验丰富的开发者都会遇到的问题,它描述了在特定条件下,垂直...
本文档主要讲述的是Css中margin属性详细解析;CSS 边距属性定义元素周围的空间。...margin通过使用单独的属性,可以对上、右、下、左的外边距进行设置。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
4. **外边距(Margin)**:边框之外的空间,用于调整元素与其他元素之间的距离。`margin`属性用于设置外边距,同样有上、右、下、左四个方向。 在CSS中,有两种盒模型:标准盒模型(W3C盒模型)和IE盒模型(怪异盒...
CSS border-collapse 属性
在CSS布局中,外边距折叠(Margin Collapsing)是一个重要的概念,它涉及到元素间的垂直间距处理。这个现象主要发生在相邻元素的垂直外边距上,尤其是兄弟元素和父子元素之间的关系。我们来深入探讨这个主题。 首先...
在CSS布局中,外边距(Margin)是一个重要的概念,它指的是元素边框之外的空白区域,用于控制元素之间的空间。外边距合并是CSS布局中一个常见的现象,特别是涉及到元素垂直排列时。当我们为相邻元素设置外边距时,...
在CSS布局中,经常会遇到块级元素垂直外边距(margin)发生叠加的问题,这通常称为margin叠加或外边距折叠。当两个或多个毗邻的块级元素垂直方向上的margin相遇时,它们会以较大者的margin值作为一个统一的margin值...
在CSS中,margin可以通过单独的属性设置,如`margin-top`、`margin-right`、`margin-bottom`和`margin-left`,或者使用简写的`margin`属性一次性设置所有方向的外边距。例如,`margin: 10px 20px 30px 40px;`表示...
CSS中的margin属性是控制元素外边距的重要工具,它能够影响元素与其它元素间的距离,从而对页面布局产生影响。本文将详细梳理margin属性相关的核心知识点。 首先,margin属性是CSS中非常重要的一个属性,它允许...
在CSS布局中,"空白外边距互相叠加"是一个常见的问题,它涉及到元素之间的外边距合并规则。当两个或多个块级元素的外边距相邻时,它们的垂直外边距并不简单相加,而是取其中的最大值作为最终的外边距。这在某些情况...
### CSS中的Padding与Margin属性详解 #### 一、引言 在前端开发中,CSS(层叠样式表)是用于定义HTML文档外观的核心技术之一。其中,`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...
首先我们先看出现外边距塌陷的三种情况: 1.当上下相邻的两个块级元素相遇,上面的元素有下边距margin-bottom,下面的元素有上边距margin-top,则它们之间的垂直距离取两个值中的较大者。 <style> .box1 { ...
**CSS中的Margin边界叠加问题详解** 在CSS布局中,元素之间的间距往往受到margin的影响,而margin边界叠加(Margin Collapsing)是CSS布局中的一个重要概念,它可能导致元素间的间距不符合预期。理解并掌握这一概念...
CSS:掌握内边距与外边距的运用.docx
本文介绍了css中子元素设置margin-top为什么影响了父元素,分享给大家,具体如下: <style type="text/css"> *{ margin: 0px; padding: 0px; } .show{ margin: 0px auto; width: 200px; height: ...
margin我们一般习惯的叫它外边距,分别可以设置四个方向的外边距,这里不再赘述赋值语法。 实际上,我们通常设置的margin是物理级别的设置,而margin还有start、end、before、after等,这些主要是逻辑级别的设置,...
CSS中的空白叠加是指当HTML文档流中两个垂直方向的块级元素相遇时,它们的外边距(margin)会发生叠加现象,形成一个新的外边距,这个新外边距的高度等于两个原始外边距中较大的那个值。这是CSS布局中一个非常重要的...