盒子模型(Box Modle)可以用來對元素進行布局,包括內邊距,邊框,外邊距,和實際內容這幾個部分。
盒子模型分為兩種 第一種是W3c標准的盒子模型(標准盒模型) 、第二種IE標准的盒子模型(怪異盒模型)
當前大部分的瀏覽器支持的是W3c的標准盒模型,也保留了對怪異盒模型的支持,當然IE瀏覽器沿用的是怪異盒模型。怪異模式是“部分瀏覽器在支持W3C標准的同時還保留了原來的解析模式”,怪異模式主要表現在IE內核的瀏覽器。
一、標准盒模型與怪異盒模型的表現效果的區別之處:
1、標准盒模型中width指的是內容區域content的寬度;height指的是內容區域content的高度。
標准盒模型下盒子的大小 = content + border + padding + margin
2、怪異盒模型中的width指的是內容、邊框、內邊距總的寬度(content + border + padding);height指的是內容、邊框、內邊距總的高度
怪異盒模型下盒子的大小=width(content + border + padding) + margin
二、如何選擇盒模型
如果是定義了完整的doctype的標准文檔類型,無論是哪種模型情況,最終都會觸發標准模式,
如果doctype協議缺失,會由瀏覽器自己界定,在IE瀏覽器中IE9以下(IE6.IE7.IE8)的版本觸發怪異模式,其他瀏覽器中會默認為W3c標准模式。
代碼
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>盒子模型</title> 6 <style> 7 #box1{ 8 padding:20px; 9 background-color: greenyellow; 10 width: 100px; 11 height: 100px; 12 border:20px skyblue solid; 13 } 14 </style> 15 </head> 16 <body> 17 <div id="box1"></div> 18 </body> 19 </html>
布局
除此之外,我們還可以通過屬性box-sizing來設置盒子模型的解析模式
可以為box-sizing賦三個值:
content-box: 默認值,border和padding不算到width范圍內,可以理解為是W3c的標准模型(default)
border-box:border和padding划歸到width范圍內,可以理解為是IE的怪異盒模型
padding-box:將padding算入width范圍
-
當設置為box-sizing:content-box時,將采用標准模式解析計算(默認模式);
-
當設置為box-sizing:border-box時,將采用怪異模式解析計算;
實例:
1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title>怪異盒子練習</title> 6 <style> 7 div{ 8 width: 234px; 9 height: 460px; 10 background-color: #2e233e; 11 padding: 20px 0px; 12 box-sizing: border-box; 13 } 14 div li{ 15 font-size: 14px; 16 height: 42px; 17 line-height: 42px; 18 padding-left: 30px; 19 } 20 a{color: white} 21 li:hover{background-color: #ff6700;} 22 </style> 23 </head> 24 <body> 25 <div> 26 <ul> 27 <li><a href="">電器商城</a></li> 28 <li><a href="">電器商城</a></li> 29 <li><a href="">電器商城</a></li> 30 <li><a href="">電器商城</a></li> 31 <li><a href="">電器商城</a></li> 32 <li><a href="">電器商城</a></li> 33 <li><a href="">電器商城</a></li> 34 <li><a href="">電器商城</a></li> 35 <li><a href="">電器商城</a></li> 36 <li><a href="">電器商城</a></li> 37 </ul> 38 </div> 39 </body> 40 </html>
表現效果