CSS中margin和padding属性的区别


当你想让两个元素的content在垂直方向(vertically)分隔时, 既可以选择padding-top/bottom, 也可以选择margin-top/bottom, 建议尽量使用padding-top/bottom来达到你的目的,这是因为css中存在Collapsing margins(折叠的margins)的现象。

Box Model :任意一个块级元素均由content(内容)、 padding、background(包括背景颜色和图片)、border(边框)、margin五个部分组成, 立体图见附件

以下说明margin和padding属性:

1. Margin:包括margin-top, margin-right, margin-bottom, margin-left,,控制块级元素之间的距离, 它们是透明不可见的,margin值均为40px,代码为:

margin-top: 40px;
margin-right: 40px;
margin-bottom: 40px;
margin-left: 40px;


根据上、右、下、左的顺时针规则,简写为

margin: 40px 40px 40px 40px;

当上下,左右margin值分别一致,可简写为:

margin: 40px 40px;

前一个40px代表上下margin值,后一个40px代表左右margin值. 

当上下左右margin值均一致,可简写为:

margin: 40px;
 
2. Padding:包括padding-top、padding-right、padding-bottom、padding-left,控制块级元素内部,content与border之间的距离,其代码简写请参考margin属性的写法.

至此, 我们已经基本了解margin和padding属性的基本用法。 但是,在实际应用中,却总是发生一些让你琢磨不透的事, 而它们又或多或少的与margin有关. 

:当你想让两个元素的content在垂直方向(vertically)分隔时, 既可以选择padding-top/bottom, 也可以选择margin-top/bottom, 建议尽量使用padding-top/bottom来达到你的目的,这是因为css中存在Collapsing margins(折叠的margins)的现象。
 
Collapsing margins:margins折叠现象只存在于临近或有从属关系的元素,垂直方向的margin中。

  原文链接: CSS中margin和padding属性的区别
 相关内容