CSS Box Sizing
- 上一頁 CSS @property
- 下一頁 CSS Flexbox
CSS Box Sizing
CSS box-sizing
屬性允許我們在元素的總寬度和高度中包括內邊距(填充)和邊框。
假如不指定 CSS box-sizing 屬性
默認情況下,元素的寬度和高度是這樣計算的:
- width + padding + border = 元素的實際寬度
- height + padding + border = 元素的實際高度
這意味著:當您設置元素的寬度/高度時,該元素通常看起來比您設置的更大(因為元素的邊框和內邊距已被添加到元素的指定寬度/高度中)。
下圖展示了兩個有相同指定寬度和高度的 <div> 元素:
這個 div 較小
(寬度為 300px,高度為 100px)。
(寬度為 300px,高度為 100px)。
這個 div 更大
(寬度也為 300px,高度為 100px)。
(寬度也為 300px,高度為 100px)。
上面的兩個 <div> 元素在最終結果中呈現出不同的尺寸(因為 div2 指定了內邊距):
實例
.div1 { width: 300px; height: 100px; border: 1px solid blue; } .div2 { width: 300px; height: 100px; padding: 50px; border: 1px solid red; }
box-sizing
屬性解決了這個問題。
如果使用 CSS box-sizing 屬性
box-sizing
屬性允許我們在元素的總寬度和高度中包括內邊距和邊框。
如果在元素上設置了 box-sizing: border-box;
,則寬度和高度會包括內邊距和邊框:
現在兩個 div 的大小相同!
Hooray!
該例與上例相同,兩個 <div> 元素都設置了 box-sizing: border-box;
:
實例
.div1 { width: 300px; height: 100px; border: 1px solid blue; box-sizing: border-box; } .div2 { width: 300px; height: 100px; padding: 50px; border: 1px solid red; box-sizing: border-box; }
由于使用 box-sizing: border-box;
的效果如此之好,許多開發人員希望頁面上的所有元素都能夠以這種方式工作。
下面的代碼能夠確保以這種更直觀的方式調整所有元素的大小。許多瀏覽器已經在對許多表單元素使用 box-sizing: border-box;
(但并非全部 - 這就是為什么 input 和 textarea 在 width: 100%; 時看起來不同)。
將其應用于所有元素是安全且明智的:
實例
* { box-sizing: border-box; }
CSS Box Sizing 屬性
屬性 | 描述 |
---|---|
box-sizing | 定義元素寬度和高度的計算方式:它們是否應包含內邊距(padding)和邊框。 |
- 上一頁 CSS @property
- 下一頁 CSS Flexbox