CSS盒子模型本質上是一個盒子,封裝周圍的HTML元素。css
包括:邊框border、外邊距margin、內邊距padding、實際內容content。瀏覽器
div { border: border-width border-style border-color; }
屬性 | 做用 |
---|---|
border-width | 邊框粗細,單位px |
border-style | 邊框樣式,solid(實線)、dashed(虛線)、dotted(點線) |
border-color | 邊框顏色,預約義值/十六進制/rgb() |
線形 | 樣式 |
---|---|
dashed 虛線 | - - - - - - - - |
dotted 點線 | ................. |
屬性 | 做用 |
---|---|
border-left | 左邊框 |
border-right | 右邊框 |
border-top | 上邊框 |
border-bottom | 下邊框 |
簡寫:code
border: 1px solid blue;/*沒有順序規定,通常按照這種順序*/
分開寫法:blog
border-top: 1px solid blue;/*只設定上邊框*/ border-right: 1px dashed red;/*只設定右邊框*/; border-bottom: 2px solid #ccc;/*只設定下邊框*/ border- left: 3px dotted #123456;/*只設定左邊框*/
該屬性控制瀏覽器繪製表格邊框的方式,它控制相鄰單元格的邊框。table
border-collapse: collapse;/*表示相鄰邊框合併在一塊兒*/
若是一個盒子加了邊框,會出現撐大盒子的狀況,所以有兩種解決方案。class
內邊距:邊框與內容之間的距離。兼容性
屬性 | 做用 |
---|---|
padding-left | 左內邊距 |
padding-right | 右內邊距 |
padding-top | 上內邊距 |
padding-bottom | 下內邊距 |
padding的簡寫屬性能夠有1~4個值。im
值的個數 | 表達意思 |
---|---|
padding: 5px | 上下左右都是5px內邊距 |
padding: 5px 10px | 上下5px,左右10px |
padding: 5px 10px 15px | 上5px,左右10px,下15px |
padding: 5px 10px 15px 20px | 上5px,右10px,下15px,左20px |
若是盒子已經有了寬度和高度,此時再指定內邊框,會影響盒子的實際大小,撐大盒子。所以有兩種解決方案。d3
外邊距:控制盒子與盒子之間的距離。樣式
屬性 | 做用 |
---|---|
margin-left | 左外邊距 |
margin-right | 右外邊距 |
margin-top | 上外邊距 |
margin-bottom | 下外邊距 |
margin的簡寫和padding一致。
利用外邊距讓塊級盒子水平居中所知足的條件:
常見的寫法:
注:行內元素、行內塊元素水平居中,給其父元素添加text-align: center;便可。
使用margin定義塊元素的垂直外邊距時,可能會出現外邊距的合併。
如上圖,出現了取兩個值中的較大者的現象,即爲相鄰塊元素垂直外邊距的合併。
解決方案:儘可能只給一個盒子添加margin值。
如上圖,出現了父元素塌陷較大的外邊距值的現象,即爲嵌套塊元素垂直外邊距的塌陷。
解決方案:
這也是CSS的第一行代碼。
* { padding: 0;/*清除內邊距*/ margin: 0;/*清除外邊距*/ }
注: