美文网首页IT修真院-前端
什么时候用Margin?什么时候用Padding?

什么时候用Margin?什么时候用Padding?

作者: 自娱自楽 | 来源:发表于2017-08-31 11:46 被阅读628次

    在HTML文档中,我们一般把HTML标签粗分为块级元素(block)和内联元素(inline)。块级元素是是构成一个html的主要和关键元素, 任意一个块级元素均可以用盒子模型(Box model)来解释说明。margin和padding属性是盒子模型的的组成部分,正确理解这两个属性也是学习用css布局的关键。


    盒子模型

     任意一个块级元素均由content(内容), padding(内边距), background(包括背景颜色和图片), border(边框), margin(外边距)五个部分组成。

    其中margin属性定义了元素边框外部的空白区域,给其赋值可以设置元素与元素之间的距离

    padding属性定义了元素边框与元素内容之间的空白区域,给其赋值可以设置元素与内容之间距离


    margin和padding的属性及语法:

    1. Margin: 包括margin-top, margin-right, margin-bottom, margin-left, 控制块级元素之间的距离, 它们是透明不可见的, 可以分别给其四个方向赋值,也可以对值进行简写,其中属性值可以是具体数子,也可以用百分比表示,当用百分比时,百分比参考父元素的宽度。

    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:20px 40px 30px;

    中间的40px代表左右margin值。

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

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


    什么时候用margin?什么时候用padding?

    使用margin值的情况:

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

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

    上下相连的两个盒子之间的空白,需要相互抵消时。如15px + 20px的margin,将得到20px的空白。(margin折叠)。

    需要使用负值对页面布局时(margin值可以取负,padding不行)。

    使用padding时的情况:

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

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

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

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


    什么是margin折叠?

    在CSS中,两个或以上的块元素(可能是兄弟,也可能不是)之间的相邻外边距可以被合并成一个单独的外边距。通过此方式合并的外边距被称为折叠,且产生的已合并的外边距被称为折叠外边距。

    处于同一个块级上下文中的块元素,没有行框、没有间隙、没有内边距和边框隔开它们,这样的元素垂直边缘毗邻,则称之为相邻。


    margin和padding还有哪些不同?

    在怪异盒模型中,一个块的总宽度受margin影响但不受padding影响。


    参考文献

    css中padding、margin属性的区别和详解

    margin系列之外边距折叠

    相关文章

      网友评论

        本文标题:什么时候用Margin?什么时候用Padding?

        本文链接:https://www.haomeiwen.com/subject/gknxjxtx.html