盒子模型是css中一個(gè)重要的概念,理解了盒子模型才能更好的排版。其實(shí)盒子模型有兩種现喳,分別是 ie 盒子模型和標(biāo)準(zhǔn) w3c 盒子模型。他們對盒子模型的解釋各不相同犬辰,先來看看我們熟知的標(biāo)準(zhǔn)盒子模型:
從上圖可以看到標(biāo)準(zhǔn) w3c 盒子模型的范圍包括 margin嗦篱、border、padding幌缝、content灸促,并且 content 部分不包含其他部分。
ie 盒子模型
從上圖可以看到 ie 盒子模型的范圍也包括 margin、border浴栽、padding荒叼、content,和標(biāo)準(zhǔn) w3c 盒子模型不同的是:ie 盒子模型的 content 部分包含了 border 和 pading典鸡。
例:一個(gè)盒子的 margin 為 20px被廓,border 為 1px,padding 為 10px萝玷,content 的寬為 200px嫁乘、高為 50px,假如用標(biāo)準(zhǔn) w3c 盒子模型解釋球碉,那么這個(gè)盒子需要占據(jù)的位置為:寬 20*2+1*2+10*2+200=262px蜓斧、高 20*2+1*2*10*2+50=112px,盒子的實(shí)際大小為:寬 1*2+10*2+200=222px睁冬、高 1*2+10*2+50=72px挎春;假如用ie 盒子模型,那么這個(gè)盒子需要占據(jù)的位置為:寬 20*2+200=240px豆拨、高 20*2+50=70px直奋,盒子的實(shí)際大小為:寬 200px、高 50px辽装。
那應(yīng)該選擇哪中盒子模型呢帮碰?當(dāng)然是“標(biāo)準(zhǔn) w3c 盒子模型”了相味。怎么樣才算是選擇了“標(biāo)準(zhǔn) w3c 盒子模型”呢拾积?很簡單,就是在網(wǎng)頁的頂部加上 doctype 聲明丰涉。假如不加 doctype 聲明拓巧,那么各個(gè)瀏覽器會(huì)根據(jù)自己的行為去理解網(wǎng)頁,即 ie 瀏覽器會(huì)采用 ie 盒子模型去解釋你的盒子一死,而 ff 會(huì)采用標(biāo)準(zhǔn) w3c 盒子模型解釋你的盒子肛度,所以網(wǎng)頁在不同的瀏覽器中就顯示的不一樣了。反之投慈,假如加上了 doctype 聲明承耿,那么所有瀏覽器都會(huì)采用標(biāo)準(zhǔn) w3c 盒子模型去解釋你的盒子,網(wǎng)頁就能在各個(gè)瀏覽器中顯示一致了伪煤。
<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
頂部加了 doctype 聲明加袋。在所有瀏覽器中都顯示“標(biāo)準(zhǔn) w3c 盒子模型”。所以為了讓網(wǎng)頁能兼容各個(gè)瀏覽器抱既,讓我們用標(biāo)準(zhǔn) w3c 盒子模型职烧。