`
xhuang
  • 浏览: 30994 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

css之margin collapse(外边距叠加)

 
阅读更多

首先抛出问题:

  • stackoverfow:
  1. Margin on child element moves parent element

  2. 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
0
4
分享到:
评论

相关推荐

    css面试题.docx

    外边距塌陷是指两个或多个元素的外边距叠加在一起时,实际占用的空间小于每个元素的外边距之和。解决方法包括使用margin-collapse、padding、border等。 3. 清除浮动的方法 浮动(float)可以使元素脱离文档流,但...

    前端开发 css笔记

    - **层叠性**:当多个CSS规则应用于同一个元素时,它们可以相互叠加,除非这些规则之间存在冲突。 - **优先性**:当两个或多个CSS规则发生冲突时,具有更高优先级的规则将会生效。优先级的高低取决于规则的来源和...

    javascript面试题

    CSS 盒子模型由内容区域、内边距、边框和外边距组成。 **36、为什么要初始化样式?** 初始化样式是为了消除浏览器间的默认样式差异,保证一致的视觉效果。 **37、BFC 是什么?** BFC(Block Formatting Context)...

    Cascading-StyleSheet_2.0中文手册_CHM.7z

    4. **盒模型**:CSS2.0 的盒模型包括元素的边距(margin)、边框(border)、填充(padding)和内容区域,理解盒模型有助于精确控制元素的尺寸和布局。 5. **定位**:CSS2.0 提供了相对定位(relative)、绝对定位...

    前端面试题

    创建BFC可以避免外边距折叠等问题。 **20、CSS权重优先级是如何计算的?** - CSS权重由特定性(specificity)决定,特定性越高,优先级越高。特定性的计算规则为:内联样式 > ID选择符 > 类/属性/伪类选择符 > ...

    css3

    14. **边距重叠**:CSS3解决了在某些情况下边距合并的问题,提供了`margin-collapse`属性进行控制。 15. **多背景**:一个元素可以拥有多个背景图像,通过逗号分隔来叠加。 以上只是CSS3众多特性的冰山一角,实际...

    web前端笔试面试

    - `margin collapse`不会发生在绝对定位元素上。 **19. BFC规范的理解?** - **BFC**: 块级格式化上下文。 - 决定了元素如何布局以及与相邻元素的关系。 **20. CSS权重优先级计算?** - 权重由选择器类型(如ID...

Global site tag (gtag.js) - Google Analytics