[轉自W3school]
原地址:http://www.w3school.com.cn/css/css_boxmodel.asp
一、CSS 框模型概述
元素框的最內部分是實際的內容,直接包圍內容的是內邊距。內邊距呈現了元素的背景。內邊距的邊緣是邊框。邊框以外是外邊距,外邊距默認是透明的,因此不會遮擋其後的任何元素。
在 CSS 中,width 和 height 指的是內容區域的寬度和高度。增加內邊距、邊框和外邊距不會影響內容區域的尺寸,但是會增加元素框的總尺寸。
假設框的每個邊上有 10 個像素的外邊距和 5 個像素的內邊距。如果希望這個元素框達到 100 個像素,就需要將內容的寬度設置爲 70 像素,請看下圖:
#box {
width: 70px;
margin: 10px;
padding: 5px;
}
二、CSS內邊距
CSS padding 屬性定義元素的內邊距。padding 屬性接受長度值或百分比值,但不允許使用負值。
例如,如果您希望所有 h1 元素的各邊都有 10 像素的內邊距,只需要這樣:
h1 {padding: 10px;}
您還可以按照上、右、下、左的順序分別設置各邊的內邊距,各邊均可以使用不同的單位或百分比值:
h1 {padding: 10px 0.25em 2ex 20%;}
前面提到過,可以爲元素的內邊距設置百分數值。百分數值是相對於其父元素的 width 計算的,這一點與外邊距一樣。所以,如果父元素的 width 改變,它們也會改變。
下面這條規則把段落的內邊距設置爲父元素 width 的 10%:
p {padding: 10%;}
例如:如果一個段落的父元素是 div 元素,那麼它的內邊距要根據 div 的 width 計算。
<div style="width: 200px;"> <p>This paragragh is contained within a DIV that has a width of 200 pixels.</p> </div>
注意:上下內邊距與左右內邊距一致;即上下內邊距的百分數會相對於父元素寬度設置,而不是相對於高度。
三、邊框
元素外邊距內就是元素的的邊框 (border)。元素的邊框就是圍繞元素內容和內邊據的一條或多條線。
每個邊框有 3 個方面:寬度、樣式,以及顏色。
邊框的樣式:border-style:
邊框的寬度:border-width:
邊框顏色: border-color:
四、外邊距
margin 屬性接受任何長度單位,可以是像素、英寸、毫米或 em。
margin 可以設置爲 auto。更常見的做法是爲外邊距設置長度值。下面的聲明在 h1 元素的各個邊上設置了 1/4 英寸寬的空白:
h1 {margin : 0.25in;}
下面的例子爲 h1 元素的四個邊分別定義了不同的外邊距,所使用的長度單位是像素 (px):
h1 {margin : 10px 0px 15px 5px;}
與內邊距的設置相同,這些值的順序是從上外邊距 (top) 開始圍着元素順時針旋轉的:
margin: top right bottom left
另外,還可以爲 margin 設置一個百分比數值:
p {margin : 10%;}
百分數是相對於父元素的 width 計算的。上面這個例子爲 p 元素設置的外邊距是其父元素的 width 的 10%。
margin 的默認值是 0,所以如果沒有爲 margin 聲明一個值,就不會出現外邊距。但是,在實際中,瀏覽器對許多元素已經提供了預定的樣式,外邊距也不例外。例如,在支持 CSS 的瀏覽器中,外邊距會在每個段落元素的上面和下面生成“空行”。因此,如果沒有爲 p 元素聲明外邊距,瀏覽器可能會自己應用一個外邊距。當然,只要你特別作了聲明,就會覆蓋默認樣式。