CSS中margin与padding的区别

 

CSS边距属性定义元素周围的空间。经过使用单独的属性,能够对上、右、下、左的外边距进行设置。也可使用简写的外边距属性同时改变全部的外边距。——W3School布局

边界(margin):元素周围生成额外的空白区。“空白区”一般是指其余元素不能出现且父元素背景可见的区域。——CSS权威指南spa

padding称呼为内边距,其判断的依据即边框离内容正文的距离,而我喜欢CSS权威指南解释的“补白”(或者叫“留白”),由于他很形象。补白(padding):补白位于元素框的边界与内容区之间。很天然,用于影响这个区域的属性是padding。——CSS权威指南blog

使用简写的外边距属性同时改变全部的外边距:margin: top right bottom left;(eg: margin:10px 20px 30px 40px) 记忆方式是元素周围正上方顺时针“上右下左”记忆。开发

而且规范还提供了省略的数值写法,基本以下:class

一、若是margin只有一个值,表示上右下左的margin同为这个值。例如:margin:10px; 就等于 margin:10px 10px 10px 10px;方法

二、若是 margin 只有两个值,第一个值表示上下margin值,第二个值为左右margin的值。例如:margin:10px 20px; 就等于 margin:10px 20px 10px 20px;im

三、若是margin有三个值,第一个值表示上margin值,第二个值表示左右margin的值,第三个值表示下margin的值。例如:margin:10px 20px 30px; 就等于 margin:10px 20px 30px 20px;总结

四、若是margin有四个值,那这四个值分别对应上右下左这四个margin值。例如:margin:10px 20px 30px 40px;margin

在实际应用中,我的不推荐使用三个值的margin,一是容易记错,二是不容易往后修改,一开始若是写成margin:10px 20px 30px;往后需求改动为上10px,右30px,下30px,左20px,你不得不仍是得把这个margin拆开为margin:10px 30px 30px 20px;费力且不讨好,不如一开始就老老实实的写成margin:10px 20px 30px 20px;来的实在,不要为了如今节省俩个字节而让往后再次开发的成本上升。top

一样的,padding也有上述类似的方法对上、右、下、左内边距进行设置。

这里补充一个知识点:外边距合并

含义:外边距合并指的是,当两个垂直外边距相遇时,它们将造成一个外边距。合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者。

关于何时用margin何时用padding,众说纷纭。并且margin和padding在许多地方每每效果都是如出一辙,并且你也不能说这个必定得用margin那个必定要用padding,由于实际的效果都同样,你说margin用起来好他说padding用起来会更好,但每每争论无果。根据网上的总结概括大体发现这几条仍是比较靠谱的:

什么时候应当使用margin:

须要在border外侧添加空白时。

空白处不须要背景(色)时。

上下相连的两个盒子之间的空白,须要相互抵消时。如15px + 20px的margin,将获得20px的空白。

什么时候应当时用padding:

须要在border内测添加空白时。

空白处须要背景(色)时。

上下相连的两个盒子之间的空白,但愿等于二者之和时。如15px + 20px的padding,将获得35px的空白。

我的认为:margin是用来隔开元素与元素的间距;padding是用来隔开元素与内容的间隔。margin用于布局分开元素使元素与元素互不相干;padding用于元素与内容之间的间隔,让内容(文字)与(包裹)元素之间有一段“呼吸距离”。

相关文章
相关标签/搜索