该属性用来设置元素与元素内容之间的内边距。
其默认取值为0,也可取值为长度值或者百分比,均不允许负值。当取值为百分比时,计算值是参照包含块的宽度(水平书写模式下参照宽度,其他书写模式下参照高度)来得到的。
如果提供4个参数值,则按上右下左(顺时针)的顺序作用于四边;如果提供3个参数,则第一个用于上边距,第二个用于左右边距,第三个用于下边距;如果提供2个参数,则第一个用于上下边距,第二个用于左右边距;如果提供1个参数,则作用于四边。
padding和margin有所区别,当设置背景色时,背景色覆盖的范围会覆盖到padding的区域。
如果要设置非替代行内元素的上下padding,则需要先把元素变为块级或者内联块级元素。
下面的示例中,绿色div为外部div(带边框)的内容,绿色div与外部div的内边距依照上右下左的顺序分别为10px、20px、30px、40px。
这四个属性可以对元素四个方向上的内边距进行单独的设置,其取值和注意点和padding属性类似,不再赘述。
时常在我们设计页面的时候,margin和padding都能够在视觉上达到同样的效果。To be margin or to be padding, that's a question.
padding的作用是用来隔绝元素和其中的内容,而margin的作用是用隔绝元素与元素之间的距离。同时,对于隔开子元素和父元素的距离这样的问题,如果用margin的话,很可能会因为意外出现的margin折叠而打乱了自己的原本的设计。
可以看到,上述左边的例子并没有达到想要的效果,因为这时候孩子1的父亲的兄弟节点的margin-bottom(30px)和孩子1的margin-top折叠了。所以,这时候用padding是更明智的选择。