文件中的每個元素被描繪為矩形盒子。渲染引擎的目的就是判定大小,屬性──例如它的顏色、背景、邊框面──及這些盒子的位置。在CSS中,這些矩形盒子用標準盒模型來描述。這個模型描述了一個元素所佔用的空間。每個盒子有四個邊界:外邊距邊界margin, 邊框邊界border, 內邊距邊界padding與內容邊界content。
在W3C模型中: 總寬度 = margin-left + border-left + padding-left + width + padding-right + border-right + margin-right
在IE模型: 總寬度 = margin-left + width + margin-right
在CSS3中引入了box-sizing屬性, 它可以允許改變預設的CSS盒模型對元素寬高的計算方式.
共包含兩個選項:
content-box:標準盒子模型,CSS定義的寬高只包含content的寬高。 (預設)
border-box:IE盒模型,CSS定義的寬高包括了content,padding和border
實例:
(con1設定為box-sizing:border-box,con為預設的content-box)
<span style="color: #008080;"> 1</span> <head lang="en"> <span style="color: #008080;"> 2</span> <meta charset="UTF-8"> <span style="color: #008080;"> 3</span> <title></title> <span style="color: #008080;"> 4</span> <style> <span style="color: #008080;"> 5</span> .con{width: 100px; height: 100px;background-<span style="color: #000000;">color:royalblue; </span><span style="color: #008080;"> 6</span> <span style="color: #000000;"> border:1px solid red; padding: 10px;} </span><span style="color: #008080;"> 7</span> .con1{box-sizing: border-<span style="color: #000000;">box;} </span><span style="color: #008080;"> 8</span> </style> <span style="color: #008080;"> 9</span> </head> <span style="color: #008080;">10</span> <body> <span style="color: #008080;">11</span> <div class="con"></div> <span style="color: #008080;">12</span> <div class="con con1"></div> <span style="color: #008080;">13</span> </body>
在控制台可以一目了然的看出兩個盒子的區別
第一個div的盒子模型如下:content-box
第二個div的盒子模型如下:border-box