在CSS
中全部元素都被一個個盒子包圍,理解盒模型的基本原理是使用CSS
實現準確佈局、處理元素排列的關鍵。css
經過設置 display
來控制盒子外部顯示類型。 盒子內部顯示類型決定盒子內部元素如何佈局,默認狀況是正常流佈局。瀏覽器
最普遍應用的兩種盒:bash
block box
:
width
和 heigth
生效padding margin border
會將其餘元素從當前盒子周圍推開inline box
:
width height
不生效padding margin border
生效可是不會推開其餘 inline box
完整的盒模型應用於塊級盒子,內聯盒子只使用盒模型定義中的部份內容,模型定義了盒子的每一個部分:佈局
margin
:顯示內容,大小經過width height
設置border
:包圍在內容外部的空白區域,大小經過padding
設置padding
:包裹內容和內邊距,大小經過border
設置content
:盒子和其餘元素之間的空白區域,大小經過margin
設置以下圖: spa
在標準模型中,給盒子設置width height
,實際設置的是content box
code
假設下面是一個盒子的樣式:cdn
.box {
width: 350px;
height: 150px;
margin: 25px;
padding: 25px;
border: 5px solid black;
}
複製代碼
使用標準模型的寬度 = 410(350+25+25+5+5) 也就是 width+padding+border
blog
注:
margin
不計入實際大小,固然,它會影響盒子在頁面所佔空間,可是影響的是盒子外部空間。盒子的範圍到邊框爲止,不會延伸到margin
。it
你可能會認爲盒子的大小還要加上邊框和內邊距,這樣很麻煩,並且你的想法是對的! 由於這個緣由,css
還有一個替代盒模型。使用這個模型,全部寬度都是可見寬度,因此內容寬度是該寬度減去邊框和填充部分。io
默認瀏覽器會使用標準模型。若是須要使用替代模型,您能夠經過爲其設置 box-sizing: border-box
來實現。 這樣就能夠告訴瀏覽器使用 border-box
來定義區域,從而設定您想要的大小。