margin简介
margin属性在CSS外边距中是比较常用的,本文将带你深入理解margin属性的各个方面,包括它的语法、取值、作用和浏览器兼容性,最后附上margin的实例,希望能够对你有所帮助。
margin定义和用法
margin:[ <length> | <percentage> | auto ]{1,4}
默认值:看每个独立属性
适用于:所有元素,除非 table | inline-table | table-caption 的表格类元素之外
继承性:无
动画性:是
计算值:看每个独立属性
相关属性:[ margin-top ] || [ margin-right ] || [ margin-bottom ] || [ margin-left ]
margin属性值
- auto:
- 水平(默认)书写模式下,margin-top/margin-bottom计算值为0,margin-left/margin-right取决于可用空间。详见:margin系列之keyword auto
- <length>:
- 用长度值来定义外边距。可以为负值
- <percentage>:
- 用百分比来定义外边距。水平(默认)书写模式下,参照其包含块 width 进行计算,其它情况参照 height ,可以为负值
margin说明
检索或设置对象四边的外延边距。
- 如果提供全部四个参数值,将按上、右、下、左的顺序作用于四边。
- 如果只提供一个,将用于全部的四边。
- 如果提供两个,第一个用于上、下,第二个用于左、右。
- 如果提供三个,第一个用于上,第二个用于左、右,第三个用于下。
- 非替代(non-Replaced)行内元素可以使用该属性设置左、右两边的外补丁;若要设置上、下两边的外补丁,必须先使该对象表现为块级或内联块级。
- 外延边距始终透明。
-
某些相邻的margin会发生合并,我们称之为margin折叠:
如果给上例中的div加上border的话:
-
margin折叠常规认知:
- margin折叠只发生在块级元素上;
- 浮动元素的margin不与任何margin发生折叠;
- 设置了属性overflow且值不为visible的块级元素,将不与它的子元素发生margin折叠;
- 绝对定位元素的margin不与任何margin发生折叠;
- 根元素的margin不与其它任何margin发生折叠;
- 对应的脚本特性为margin。
来源:http://caibaojian.com/css3/properties/margin/margin.htm