先上谷歌瀏覽器控制檯裏的盒子模型圖:css
應該很明顯了,從外而內分別是margin(外邊距)、border(邊框)、內邊距(padding)和內容(heigth&width)。html
盒子模型有css標準模型(即上述模型)和IE盒子模型,二者不一樣之處就在於IE盒子模型的內容區域等於標準模型的內容區域+padding+border。在CSS中能夠經過box-sizing來設置使用哪一種模型,content-box對應標準盒子模型,border-box對應IE盒子模型。瀏覽器
整個網頁裏最大的盒子是<doucument>,<body>默認margin爲8個像素。spa
設置backgroud-color的時候,繪製的是內容區域+padding區域。 code
padding寫法有兩種:htm
padding-top:10px;
padding-right:20px;
padding-bottom:30px;
padding-left:40px;
padding:10px,20px,30px,40px; /*上右下左*/ padding:10px,20px,30px; /*上10px,左右20px,下30px*/ padding:10px,20px; /*上下10px,左右20px*/ padding:10px; /*上右下左全爲10px*
當兩種寫法都有好比:blog
padding:10px;
padding-top:20px;
這時候的盒子模型:圖片
而這麼寫:it
padding-top:10px;
padding:20px;
這時候的盒子模型:class
因此後寫的屬性會覆蓋以前的屬性,因此通常的寫法是先寫綜合屬性,再寫小屬性來微調。
有些元素,會默認帶padding,好比你們用以前都喜歡清除它的padding的<ul>。
border有三個屬性:粗細、線型、顏色。
顏色能夠不寫,默認是黑色,可是其它兩個屬性不寫,框就出不來了。
主要線型在谷歌瀏覽器中爲如下效果:
但若是想實現比較炫酷的效果仍是會用圖片做爲邊框。
border也是個綜合屬性,綜合的寫也是上右下左的順序。
它還能夠按兩個維度拆分紅小屬性:
而且,按要素拆分的小屬性能夠繼續按方向拆分,做爲綜合寫法時順序也爲上右下左:
border-width: 10px 20px; /*上下10px,左右20px*/ border-style: solid double groove ridge; /*上solid,右double,下groove,左ridge*/ border-color: rgb(221, 140, 140) grey rgb(134, 134, 218); /*上紅,左右灰,下藍*/
效果圖:
固然,你也能夠拆分到最底層來控制:
border-top-width:10px;
border-top-style:solid;
border-top-color:red;
border-right-width:10px;
border-right-style:solid;
border-right-color:red;
border-bottom-width:10px;
border-bottom-style:solid;
border-bottom-color:red;
border-left-width:10px;
border-left-style:solid;
border-left-color:red;
如今就綜合邊框來畫個抽象藝術派錦旗:
index.html:
... <div id="triangle"> <p>css盒子畢業之證</p> </div> ...
index.css:
#triangle{
width:0px;
height:0px;
border:15px solid rgb(236, 236, 160);
border-top:none;
border-bottom-color: white;
padding: 20px;
margin: 30px;
}
p{
margin-left: -20px;
margin-top: -20px;
background: rgb(236, 106, 106);
width: 40px;
}