首頁 >web前端 >css教學 >關於CSS padding margin border屬性的詳細說明

關於CSS padding margin border屬性的詳細說明

高洛峰
高洛峰原創
2017-03-17 10:58:291709瀏覽

 圖解CSS padding、margin、border屬性

关于CSS padding margin border属性的详细说明

W3C組織建議把所有網頁上的物件放在一個盒子(box)中,設計師可以透過建立定義來控制這個盒子的屬性,這些物件包括段落、清單、標題、圖片以及圖層。盒子模型主要定義四個區域:內容(content)、內邊距(padding)、邊框(border)和外邊距(margin)。對於初學者,經常搞不清楚margin,background-color,background-image,padding,content,border之間的層次、關係和相互影響。這裡提供一張盒子模型的3D示意圖,希望能方便你的理解與記憶。
关于CSS padding margin border属性的详细说明


margin:层的边框以外留的空白
background-color:背景颜色
background-image:背景图片
padding:层的边框到层的内容之间的空白 
border:边框 
content:内容

接下來將講述HTML和CSS的關鍵-盒子模型(Box model )。理解Box model的關鍵就是margin和padding屬性,而正確理解這兩個屬性也是學習用css佈局的關鍵。

註: 為什麼不翻譯margin和padding? 
原因一: 在漢語中並沒有與之相對應的詞語; 
原因二: 即使有這樣的詞語, 由於在編寫css代碼時, 必須使用margin和padding, 如果我們總用漢語詞語代替其來解釋的話, 到了實際應用時容易混淆margin和padding的概念。

如果有一點Html基礎的話,就應該了解一些基本元素(Element),如p、h1~h6、br、p、li、ul、img等。如果將這些元素細分,又可以分別為頂層(top-level)元素、區塊級(block-level)元素和內聯(inline)元素。

區塊級元素是構成一個html的主要和關鍵元素,而任何一個區塊級元素都可以用Box model來解釋說明。
Box Model: 任一個區塊級元素均由content(內容)、padding、background(包括背景顏色和圖片)、border(邊框)、margin五個部分組成。
立體圖如下:
关于CSS padding margin border属性的详细说明

平面圖如下:
关于CSS padding margin border属性的详细说明

#根據以上兩圖,相信大家對於Box model會有個直覺的認知。

以下說明margin和padding屬性:
1、margin: 包含margin-top、margin-right、margin-bottom、margin-left,控制區塊級元素之間的距離,它們是透明不可見的。根據上、 右、下、左的順時針規則,可以寫為margin: 40px 40px 40px 40px;
為便於記憶,請參考下圖:
关于CSS padding margin border属性的详细说明

當上下、左右margin值分別一致, 可簡寫為:

margin: 40px 40px;

前一個40px代表上下margin值,後一個40px代表左右margin值。
當上下左右margin值均一致,可簡寫為:

margin: 40px;

2、Padding: 包含padding-toppadding-right padding-bottompadding-left控制區塊級元素內部,content與border之間的距離,其程式碼,簡寫請參考margin屬性的寫法。

至此,我們已經基本了解margin和padding屬性的基本用法。但是,在實際應用中,卻總是發生一些讓你琢磨不透的事,而它們又或多或少的與margin有關。

附註: 當你想要讓兩個元素的content在垂直方向(vertically)分隔時,既可以選擇padding-top/bottom,也可以選擇margin-top/bottom,再此Ruthless 建議你盡量使用padding-top/bottom來達到你的目的,這是因為css中存在Collapsing margins(折疊的margins)的現象。

Collapsing margins: margins折叠现象只存在于临近或有从属关系的元素,垂直方向的margin中。


详细说明如下: 
如果只提供一个,将用于全部的四条边;
如果提供两个,第一个用于上-下,第二个用于左-右; 
如果提供三个,第一个用于上,第二个用于左-右,第三个用于下; 
如果提供全部四个参数值,将按上-右-下-左的顺序作用于四边。


body { padding: 36px;} //对象四边的补丁边距均为36px 
body { padding: 36px 24px; } //上下两边的补丁边距为36px,左右两边的补丁边距为24px 
body { padding: 36px 24px 18px; } //上、下两边的补丁边距分别为36px、18px,左右两边的补丁边距为24px 
body { padding: 36px 24px 18px 12px; } //上、右、下、左补丁边距分别为36px、24px、18px、12px


图解CSS padding、margin、border属性
关于CSS padding margin border属性的详细说明
W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落、列表、标题、图片以及层。盒模型主要定义四个区域:内容(content)、内边距(padding)、边框(border)和外边距(margin)。对于初学者,经常会搞不清楚margin,background-color,background-image,padding,content,border之间的层次、关系和相互影响。这里提供一张盒模型的3D示意图,希望便于你的理解和记忆。
关于CSS padding margin border属性的详细说明

margin:层的边框以外留的空白
background-color:背景颜色
background-image:背景图片
padding:层的边框到层的内容之间的空白 
border:边框 
content:内容

接下来将讲述HTML和CSS的关键——盒子模型(Box model)。理解Box model的关键便是margin和padding属性,而正确理解这两个属性也是学习用css布局的关键。

注: 为什么不翻译margin和padding? 
原因一: 在汉语中并没有与之相对应的词语; 
原因二: 即使有这样的词语, 由于在编写css代码时, 必须使用margin和padding, 如果我们总用汉语词语代替其来解释的话, 到了实际应用时容易混淆margin和padding的概念。

如果有一点Html基础的话,就应该了解一些基本元素(Element),如p、h1~h6、br、p、li、ul、img等。如果将这些元素细分,又可以分别为顶级(top-level)元素、块级(block-level)元素和内联(inline)元素。

块级元素是构成一个html的主要和关键元素,而任意一个块级元素均可以用Box model来解释说明。
Box Model: 任意一个块级元素均由content(内容)、padding、background(包括背景颜色和图片)、border(边框)、margin五个部分组成。
立体图如下:
关于CSS padding margin border属性的详细说明

平面图如下:
关于CSS padding margin border属性的详细说明

根据以上两图,相信大家对于Box model会有个直观的认识。

以下说明margin和padding属性:
1、margin: 包括margin-top、margin-right、margin-bottom、margin-left,控制块级元素之间的距离,它们是透明不可见的。根据上、 右、下、左的顺时针规则,可以写为 margin: 40px 40px 40px 40px;
为便于记忆,请参考下图:
关于CSS padding margin border属性的详细说明

当上下、左右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,再此Ruthless建议你尽量使用padding-top/bottom来达到你的目的,这是因为css中存在Collapsing margins(折叠的margins)的现象。

Collapsing margins: margins折叠现象只存在于临近或有从属关系的元素,垂直方向的margin中。

 

详细说明如下: 
如果只提供一个,将用于全部的四条边;
如果提供两个,第一个用于上-下,第二个用于左-右; 
如果提供三个,第一个用于上,第二个用于左-右,第三个用于下; 
如果提供全部四个参数值,将按上-右-下-左的顺序作用于四边。

body { padding: 36px;} //对象四边的补丁边距均为36px 
body { padding: 36px 24px; } //上下两边的补丁边距为36px,左右两边的补丁边距为24px 
body { padding: 36px 24px 18px; } //上、下两边的补丁边距分别为36px、18px,左右两边的补丁边距为24px 
body { padding: 36px 24px 18px 12px; } //上、右、下、左补丁边距分别为36px、24px、18px、12px


以上是關於CSS padding margin border屬性的詳細說明的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn