box-sizing 屬性
1.content-box 是默認值。如果你設置一個元素的寬為100px,那么這個元素的內容區會有100px寬,並且任何邊框和內邊距的寬度都會被增加到最后繪制出來的元素寬度中。
2.border-box 告訴瀏覽器去理解你設置的邊框和內邊距的值是包含在width,height內的。也就是說,如果你將一個元素的width設為100px,那么這100px會包含其它的border和padding,內容區的實際寬度會是width減去border + padding的計算值。大多數情況下這使得我們更容易的去設定一個元素的寬高。
全局設置border-box的好處
全局設置 border-box 很好,更符合我們通常對一個「盒子」尺寸的認知。,其次它可以省去一次又一次的加加減減,它還有一個關鍵作用:讓有邊框的盒子正常使用百分比寬度。但是使用了 border-box 可能會與一些依賴默認 box-sizing 的庫沖突,不過這種問題大多數時候可以通過把交由這些庫處理的塊的 box-sizing 設置回 content-box 來解決。
字由https://www.wode007.com/sites/73248.html 中國字體設計網https://www.wode007.com/sites/73245.html
全局設置border-box代碼實現
html { box-sizing: border-box; } *,*::before,*::after { box-sizing: inherit; }
說明:
選擇器 * 無法覆蓋到偽元素,所以需要給 :before 和 :after 分別設置。
box-sizing: border-box 添加padding 或者border 不影響元素的width 或者height 。
box-sizing: inherit 使元素尊重其父元素box-sizing 規則。