CSS 習作|Box Sizing 盒模型計算方式

更新 發佈閱讀 6 分鐘
vocus|新世代的創作平台
The CSS box-sizing property allows us to include the padding and border in an element's total width and height.

box-sizing 是 CSS 屬性的一種,它使我們可以 改變盒模型的計算方式。
而 box-sizing 可以使用的值有以下:

  • box-sizing: content-box;
    ( width、height 設定作用在 content-box )
  • box-sizing: border-box;
    ( width、height 設定作用在 content-box + padding-box + border-box )


Box-model 盒模型

預設情況下,元素的寬度和高度計算如下:

元素的實際寬度 = width + padding + border
元素的實際高度 = height + padding + border

拆解來看,一個元素的盒模型會由以下所構成,由內而外分別是:

vocus|新世代的創作平台
  • 藍色 content-box
  • 綠色 padding-box
  • 橘黃 border-box
  • 橘色 margin-box


通常預設為:box-sizing:content-box

一般來說盒模型的計算方式會 預設為 box-sizing: content-box;,當我們為一個元素設定 width、height 時,寬高的設定作用僅在 content-box 範圍。

以下列程式碼為例:
width 500px 的作用範圍僅在 content-box 區塊。

*{ 
 box-sizing: content-box;
}
.box{
width: 500px;
height: 500px;
background: #95B5BF;
padding: 60px;
border: 30px solid #F8DDA4;
margin: 30px;
font-size: 20px;
}

而元素實際大小因為有 padding 和 border 而被撐出寬高,變成 680px,若加上 margin,則元素在畫面中所佔面積為 740px,如下圖:

vocus|新世代的創作平台



box-sizing:content-box 的計算方式

藍色的 content-box 是指 width 的寬度, width 作用範圍僅在 content-box。
因此,若我們對一個元素設定 width: 500px;,如在裡面放入文字,當文字數量累積超過寬度 500px 時就會換行繼續新增,計算方式參照下圖:

vocus|新世代的創作平台


box-sizing:border-box 的計算方式

border-box 的 width 作用範圍為 content-box、padding-box、border-box。
可以發現在 box-sizing:border-box 下, content-box 變為 320px*320px,padding 和 border 的寬度也被內推算進 500px 裡面了。

其中需要注意,box-sizing:border-box 下的內堆變化,並不是縮減 padding 和 border 來使其符合寬度 width 500px,而是 content-box 裡的寬度被推擠而變為 320px*320px,而裡面的文字寬度也保持為 20px。

若加上 margin,則元素在畫面中所佔面積為 560px*560px。

vocus|新世代的創作平台


在畫面上的差異

可以看到在 box-sizing:border-box 下,一行文字的數量變少了,而產生這樣的變化是因為盒模型的計算方式被改變使得被內推,此時 content-box 的文字內容寬度為:一個字 20px* 一行 16個字= 20px*16 = 320px

vocus|新世代的創作平台

問題紀錄:誤區測試與釐清

  1. box-sizing:border-box 下,如果 padding、border 的數值大於 width 時會發生什麼?
  2. 什麼樣的情況下,會使在 box-sizing:border-box 下仍然破版、跑版?
  3. box-sizing:border-box 下,如何伸縮自如的掌握自己設計的每個元件尺寸


本篇參考學習資源

Box-sizing - 金魚都能懂的CSS必學屬性

w3schools - CSS Box Sizing

小結

box-sizing 的觀念看似沒有很複雜,但是暗藏很多玄機,常常在實作中覺得畫面不如預期,希望透過本次習作筆記,加深瞭解其運作原理。

Practice make perfect, 我是正在自我習作中的 Draw,我們下篇見 🙇🏻

留言
avatar-img
學習如何學習
6會員
10內容數
從零開始,記錄網頁設計的學習過程。
學習如何學習的其他內容
2024/04/04
CSS 裡的「寬度,最大寬度,最小寬度」分別是什麼呢? ➊ width 用來設定元素的寬度,且 width 作用範圍僅在 content-box 區塊 ➋ max-width → 用來設定元素的最大寬度 ➌ min-width → 用來設定元素的最小寬度
Thumbnail
2024/04/04
CSS 裡的「寬度,最大寬度,最小寬度」分別是什麼呢? ➊ width 用來設定元素的寬度,且 width 作用範圍僅在 content-box 區塊 ➋ max-width → 用來設定元素的最大寬度 ➌ min-width → 用來設定元素的最小寬度
Thumbnail
2023/09/10
我想分享給那些曾有過相同感受的同學,覺得自己能力不適合、在學習中感到自卑想要放棄的那些時候。而後半篇則想分享自己對於老師、助教的感謝。
Thumbnail
2023/09/10
我想分享給那些曾有過相同感受的同學,覺得自己能力不適合、在學習中感到自卑想要放棄的那些時候。而後半篇則想分享自己對於老師、助教的感謝。
Thumbnail
2023/09/10
本篇為隨筆紀錄,將看完的影片疏理為短小筆記 。 特別有感的是,現在回頭看,發現影片中每個提及的知識點或是誤區自己都踩過好幾輪了,這是在學習及練習中很常會反覆發生、需要注意的地方,提醒自己在接下來的練習中,能將老師提及的思維及作法吸取並應用。
Thumbnail
2023/09/10
本篇為隨筆紀錄,將看完的影片疏理為短小筆記 。 特別有感的是,現在回頭看,發現影片中每個提及的知識點或是誤區自己都踩過好幾輪了,這是在學習及練習中很常會反覆發生、需要注意的地方,提醒自己在接下來的練習中,能將老師提及的思維及作法吸取並應用。
Thumbnail
看更多
你可能也想看
Thumbnail
都市傳說:「網頁跑版時,設定 box-sizing: border-box一切搞定!」
Thumbnail
都市傳說:「網頁跑版時,設定 box-sizing: border-box一切搞定!」
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
相信大家在一開始接觸 CSS 時,一定會很疑惑為什麼除了 width 外,還會有 max-width 及 min-width 語法呢? 當要開發響應式網頁時,到底要使用什麼語法來控制「斷點」?
Thumbnail
相信大家在一開始接觸 CSS 時,一定會很疑惑為什麼除了 width 外,還會有 max-width 及 min-width 語法呢? 當要開發響應式網頁時,到底要使用什麼語法來控制「斷點」?
Thumbnail
對於前端初學者來說,在切版時會出現很多規則、不規則的網頁區塊,這時候我們會嘗試用各種相對定位、絕對定位、margin 或是 padding 的方式來進行網頁區塊的推擠。
Thumbnail
對於前端初學者來說,在切版時會出現很多規則、不規則的網頁區塊,這時候我們會嘗試用各種相對定位、絕對定位、margin 或是 padding 的方式來進行網頁區塊的推擠。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
5 月將於臺北表演藝術中心映演的「2026 北藝嚴選」《海妲・蓋柏樂》,由臺灣劇團「晃晃跨幅町」製作,本文將以從舞台符號、聲音與表演調度切入,討論海妲・蓋柏樂在父權社會結構下的困境,並結合榮格心理學與馮.法蘭茲對「阿尼姆斯」與「永恆少年」原型的分析,理解女人何以走向精神性的操控、毀滅與死亡。
Thumbnail
box-sizing 是 CSS 屬性的一種,它使我們可以改變盒模型的計算方式。
Thumbnail
box-sizing 是 CSS 屬性的一種,它使我們可以改變盒模型的計算方式。
Thumbnail
在這一章節中,我們介紹了 Flexbox 這個 CSS 模型及其用法,重點講解了 Flex 容器和項目的各種屬性。通過具體的示例,展示了如何使用 Flexbox 進行一維佈局設計,並且通過實踐案例,展示了多行 Flex 項目和不同對齊方式的應用。
Thumbnail
在這一章節中,我們介紹了 Flexbox 這個 CSS 模型及其用法,重點講解了 Flex 容器和項目的各種屬性。通過具體的示例,展示了如何使用 Flexbox 進行一維佈局設計,並且通過實踐案例,展示了多行 Flex 項目和不同對齊方式的應用。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
CSS 盒模型是理解和設計網頁佈局的核心概念。它包括元素的內容、填充、邊框和外邊距。
Thumbnail
本篇習作加強自我對 CSS Box Model 的觀念,也是在實作練習中發現自己雖然看似理解了盒模型,但其實在應用上尚不熟悉,因此藉由筆記重新梳理和練習,將 CSS Box Model 的基礎觀念整理並釐清,一起來看看吧!
Thumbnail
本篇習作加強自我對 CSS Box Model 的觀念,也是在實作練習中發現自己雖然看似理解了盒模型,但其實在應用上尚不熟悉,因此藉由筆記重新梳理和練習,將 CSS Box Model 的基礎觀念整理並釐清,一起來看看吧!
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
本篇習作內容進入到 CSS 排版實作,一起瞭解 Flexbox,開始第一個網頁排版吧 💪🏻!
Thumbnail
本篇習作內容進入到 CSS 排版實作,一起瞭解 Flexbox,開始第一個網頁排版吧 💪🏻!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News