盒子模型有兩種,分別是 IE 盒子模型(怪異盒模型)和標準 W3C 盒子模型。css
先來看看咱們熟悉的標準盒子模型:css3
從上圖能夠看到標準 W3C 盒子模型的範圍包括 margin、border、padding、content,而且 content 部分不包含其餘部分。web
盒子總寬度/高度=width/height+padding+border+margin 瀏覽器
從上圖能夠看到 IE 盒子模型的範圍也包括 margin、border、padding、content,和標準 W3C 盒子模型不一樣的是:IE 盒子模型的 content 部分包含了 border 和 padding。it
盒子總寬度/高度=width/height + margin = 內容區寬度/高度 + padding + border + margin;基礎
怎麼樣纔算是選擇了「標準 W3C 盒子模型」呢?webkit
很簡單,就是在網頁的頂部加上 DOCTYPE 聲明。若是不加 DOCTYPE 聲明,那麼各個瀏覽器會根據本身的行爲去理解網頁,即 IE 瀏覽器會採用 IE 盒子模型去解釋你的盒子,而 FF 會採用標準 W3C 盒子模型解釋你的盒子,因此網頁在不一樣的瀏覽器中就顯示的不同了。im
反之,若是加上了 DOCTYPE 聲明,那麼全部瀏覽器都會採用標準 W3C 盒子模型去解釋你的盒子,網頁就能在各個瀏覽器中顯示一致了。margin
在此基礎上介紹一下css3中的box-sizing屬性img
box-sizing有兩個值一個是content-box,另外一個是border-box。
當設置爲box-sizing:content-box時,將採用標準模式解析計算,也是默認模式;
當設置爲box-sizing:border-box時,將採用怪異模式解析計算;
目前使用此屬性須要前綴以下:
-webkit-box-sizing: content-box; -moz-box-sizing: content-box;