margin:[ <length> | <percentage> | auto ]{1,4}
默认值:看每个独立属性
适用于:所有元素,除非 table | inline-table | table-caption
的表格类元素之外
继承性:无
动画性:看每个独立属性
计算值:看每个独立属性
媒 体:视觉
vertical-margin:<length> | <percentage> | auto
vertical-margin = margin-top
,margin-bottom
默认值:0
适用于:所有元素,除非 table | inline-table | table-caption
的表格类元素和非替代行内元素之外
继承性:无
动画性:当取值为 <length> | <percentage> 时
计算值:指定的百分比或绝对长度值
媒 体:视觉
horizontal-margin:<length> | <percentage> | auto
horizontal-margin = margin-right
,margin-left
默认值:0
适用于:所有元素,除非 table | inline-table | table-caption
的表格类元素之外
继承性:无
动画性:当取值为 <length> | <percentage> 时
计算值:指定的百分比或绝对长度值
媒 体:视觉
0
,horizontal-margin取决于包含块的剩余可用空间。详见:margin系列之keyword automargin
属性接受1~4
个参数值。如果提供四个参数值,将按上、右、下、左的顺序作用于四边;提供三个,第一个用于上,第二个用于左、右,第三个用于下;提供两个,第一个用于上、下,第二个用于左、右;只提供一个,同时用于四边。某些相邻的margin会发生合并,我们称之为margin折叠:
示例:
h2{margin:10px 0;} div{margin:20px 0;} ...... <h2>这是一个标题</h2> <div> <h2>这是又一个标题</h2> </div>
本例中,第1个h2的margin-bottom,div的margin-top,第2个h2的margin-top是相邻的,三者会被合并取其中最大的那个值作为最后的间隙,所以它们之间的margin间隙最后是(20px)。
如果给上例中的div加上border的话:
h2{margin:10px 0;} div{margin:20px 0;border:1px solid #aaa;} ...... <h2>这是一个标题</h2> <div> <h2>这是又一个标题</h2> </div>
本例中,第一个h2的margin-bottom(10px),div的margin-top(20px)将被合并,但第二个h2的margin-top不与它们合并,因为它被border分隔,不与它们相邻。
非visible
的块级元素,将不与它的子元素发生margin折叠;Values | IE | Firefox | Chrome | Safari | Opera | iOS Safari | Android Browser | Android Chrome |
---|---|---|---|---|---|---|---|---|
Basic Support | 8.0+ | 40.0+ | 40.0+ | 8.0+ | 40.0+ | 8.0+ | 4.4+ | 28.0+ |