[CSS] - Box Model, Margin and Padding
Box Model
Box Model 主要由四個部分主成:
- 外邊距 (Margin)
- 邊框 (Border)
- 內邊距 (Padding)
- 內容 (Content)
box-sizing 寬度計算
content-box(default):只包含內容(content)本身的寬跟高border-box:width 和 height 屬性,包括內容(content)、內邊距(padding)和邊框(border)
box-sizing: border-box
建議作法:
- 使用
*(universal selector) 全站套用 - 使用
box-sizing: border-box來根據設定的總 width & height 往內推擠,確保 box model 不會超過預期
*,
*:before,
*:after {
box-sizing: border-box;
}
margin
margin auto 水平置中
margin: auto的auto意思是瀏覽器會自動將剩餘的空間平均分配
margin: 0 auto vs margin: auto
margin: 0 auto;
/* 可以拆解成 */
margin-top: 0;
margin-right: auto;
margin-bottom: 0;
margin-left: auto;
margin: auto;
/* 可以拆解成 */
margin-top: auto;
margin-right: auto;
margin-bottom: auto;
margin-left: auto;
使用 margin left/right 將元素置右/置左
由於 auto 代表會將剩餘空間分配,因此:
margin-left: auto會使元素靠右擺放margin-right:auto會使元素靠左擺放
margin auto vs. text-align: center
margin auto: 區塊元素本身的左右text-align: center:區塊元素內的文字內容要置中