1、各類元素的width height margin padding 特性css
1.塊級元素瀏覽器
width、 height、 margin的四個方向、 padding的四個方向都正常顯示,遵循標準的css盒模型。例如:div框架
2.行內替換元素ui
width、 height、 margin的四個方向、 padding的四個方向都正常顯示,遵循標準的css盒模型。 例如:imgspa
3.行內非替換元素(重點)blog
width、 height不起做用,用line-height來控制高度。繼承
padding左右起做用,上下不會影響行高,可是對於有背景色和內邊距的行內非替換元素,背景能夠向元素上下延伸,可是行高沒有改變。所以視覺效果就是與前面的行重疊。圖片
margin左右做用起做用,上下不起做用,緣由在於:行內非替換元素的外邊距不會改變一個元素的行高。element
2、css元素的分類input
1. 替換和不可替換元素
從元素自己的特色來說,能夠分爲替換和不可替換元素。
(1) 替換元素
替換元素就是瀏覽器根據元素的標籤和屬性,來決定元素的具體顯示內容。
例如:瀏覽器會根據<img>標籤的src屬性的值來讀取圖片信息並顯示出來,而若是查看(X)HTML代碼,則看不到圖片的實際內容;
又例如:根據<input>標籤的type屬性來決定是顯示輸入框,仍是單選按鈕等。
(X)HTML中的<img>、<input>、<textarea>、<select>、<object>都是替換元素。這些元素每每沒有實際的內容,便是一個空元素,瀏覽器會根據元素的標籤類型和屬性來顯示這些元素。可替換元素也在其顯示中生成了框。
(2) 不可替換元素
(X)HTML 的大多數元素是不可替換元素,即其內容直接表現給用戶端(例如瀏覽器)。段落<p>是一個不可替換元素,文字「段落的內容」全被顯示。
2. 顯示元素
除了可替換元素和不可替換元素的分類方式外,CSS 2.1中元素還有另外的分類方式:塊級元素(block-level)和行內元素(inline-level,也譯做「內聯」元素)。
(1) 塊級元素
在視覺上被格式化爲塊的元素,最明顯的特徵就是它默認在橫向充滿其父元素的內容區域,並且在其左右兩邊沒有其餘元素,即塊級元素默認是獨佔一行的。
典型的塊級元素有:<div>、<p>、<h1>到<h6>,等等。
經過CSS設定了浮動(float屬性,可向左浮動或向右浮動)以及設定顯示(display)屬性爲「block」或「list-item」的元素都是塊級元素。
可是浮動元素比較特殊,因爲浮動,其旁邊可能會有其餘元素的存在。而「list-item」(列表項<li>),會在其前面生成圓點符號,或者數字序號。
(2) 行內元素
行內元素不造成新內容塊,即在其左右能夠有其餘元素,例如<a>、<span>、<strong>等,都是典型的行內級元素。
display屬性等於「inline」的元素都是行內元素。幾乎全部的可替換元素都是行內元素,例如<img>、<input>等等。
不過元素的類型也不是固定的,經過設定CSS 的display屬性,能夠使行內元素變爲塊級元素,也可讓塊級元素變爲行內元素。
3、盒模型
頁面上的每一個元素被看作一個矩形框,這個框由元素的內容(content)、內邊距(padding)、邊框(border)和外邊距(margin)組成。
內邊距出如今內容區域的周圍。若是在元素上添加背景,那麼背景會應用於由內容和內邊距組成的區域。在邊框外邊的是外邊距。外邊距是透明的。通常使用它控制元素之間的間隔。
在CSS中盒模型被分爲兩種,第一種是w3c的標準模型,另外一種是IE的傳統模型
外盒尺寸計算(元素空間尺寸) element空間高度=內容高度+內距+邊框+外距 element空間寬度=內容寬度+內距+邊框+外距 內盒尺寸計算(元素大小) element高度=內容高度+內距+邊框(height爲內容高度) element寬度=內容寬度+內距+邊框(width爲內容寬度)
2.IE傳統盒模型(IE6如下,不包含IE6版本或」QuirksMode下IE5.5+」)
外盒尺寸計算(元素空間尺寸) element空間高度=內容高度+外距(height包含了元素內容高度、邊框、內距) element寬間寬度=內容寬度+外距(width包含了元素內容寬度、邊框、內距) 內盒尺寸計算(元素大小) element高度=內容高度(height包含了元素內容高度、邊框、內距) element寬度=內容寬度(width包含了元素內容寬度、邊框、內距)
在CSS3中新增長了box-sizing屬性,可以事先定義盒模型的尺寸解析方式,其語法規則以下:
box-sizing: content-box | border-box | inherit
(1) content-box ,默認值,能夠使設置的寬度和高度值應用到元素的內容框。盒子的width只包含內容。
即總寬度=margin+border+padding+width
(2) border-box , 設置的width值實際上是除margin外的border+padding+element的總寬度。盒子的width包含border+padding+內容
即總寬度=margin+width
不少CSS框架,都會對盒子模型的計算方法進行簡化。
(3) inherit , 規定應從父元素繼承 box-sizing 屬性的值.