首先抛出问题:
-
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 可以单独改变元素的上,下,左,右边距,也可以一次...
其中,`margin`属性是CSS中最常用的一个属性之一,用于设置元素外边距,即元素与其他元素之间的空白距离。为了简化CSS代码编写过程,提高代码可读性及维护性,CSS允许对`margin`属性进行缩写。 #### Margin属性的...
在网页设计的世界中,CSS扮演着至关重要的角色,其中外边距(margin)的管理是布局中不可忽视的一部分。外边距叠加(Margin Collapsing)现象是初学者和经验丰富的开发者都会遇到的问题,它描述了在特定条件下,垂直...
4. **外边距(Margin)**:边框之外的空间,用于调整元素与其他元素之间的距离。`margin`属性用于设置外边距,同样有上、右、下、左四个方向。 在CSS中,有两种盒模型:标准盒模型(W3C盒模型)和IE盒模型(怪异盒...
在CSS中,margin属性可以单独设置元素的上、右、下、左四个方向的外边距,也可以通过简写的方式一次性设置所有方向的外边距。 Margin属性始终是透明的,这意味着它不会影响到页面背景或者下层元素的显示。 在实际...
外边距有四个方向:上、右、下、左,分别对应于“margin-top”,“margin-right”,“margin-bottom”和“margin-left”四个CSS属性。当只使用一个值时,这个值会应用到所有方向的外边距;两个值则分别应用于上下和...
垂直外边距合并(Margin Collapsing)是CSS布局中一个特殊的规则。当两个相邻的垂直外边距相遇时,它们会合并为较大的那个值,而不是简单地相加。这个问题在处理元素间的间距时尤其需要注意,比如在布局中,第一个子...
CSS border-collapse 属性
在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边距的重叠问题?解决:取大值,并不是他们的相加之和,而是谁大听谁的! <!DOCTYPE html> <html> <head> &...