「及時」模式:全新世代的 Tailwind CSS
Tailwind CSS on GitHub

Box Sizing

用來決定瀏覽器如何計算元素 (element) 的大小

Default class reference

Class
屬性
box-borderbox-sizing: border-box;
box-contentbox-sizing: content-box;

包含邊框和內距

使用 box-border 將元素的 box-sizing 設置成 border-box 的話,在你給元素高度和寬度時,瀏覽器會把該元素的邊框和內距給一起包含進去。

這表示四個邊都有 2px 邊框和 4px 內距的 100px × 100px 元素,將會被宣染成 100px × 100px 大小,而內容區塊會是 88px × 88px。

Tailwind 在 preflight base styles 中對每個元素皆以這個設定為預設。

<div class="box-border h-32 w-32 p-4 border-4 ...">
  <!-- ... -->
</div>

不包含邊框和內距

使用 box-content 將元素的 box-sizing 設置成 content-box 的話,瀏覽器會在元素指定的基礎高度和寬度之上再額外加入邊框和內距。

這表示四個邊都有 2px 邊框和 4px 內距的 100px × 100px 元素,實際上將會被宣染成 112px × 112px 的大小,內容區塊則是 100px × 100px。

<div class="box-content h-32 w-32 p-4 border-4 ...">
  <!-- ... -->
</div>

響應式

加上 {screen} 前綴詞給任意的 box-sizing 來控制在特定斷點上的 box-sizing 效果。例如使用 md:box-content 會讓 box-content 功能只作用在中等螢幕大小以上的裝置。

<div class="box-border md:box-content ...">
  <!-- ... -->
</div>

想要獲得更多關於 Tailwind 響應式設計的資訊,請閱讀 響應式設計 文件。

客製化

變化模式

默認情況下, 只有 響應式 的 box-sizing 變化模式 (variants) 會產生。

tailwind.config.jsvariants 區塊中變更 boxSizing 屬性來決定有哪些變化模式會生成。

舉個例子來說,這個設定將會生成 響應式 和 hover 的變化模式。

  // tailwind.config.js
  module.exports = {
    variants: {
      extend: {
        // ...
+       boxSizing: ['responsive', 'hover'],
      }
    }
  }

停用

如果你不打算在專案中使用 box-sizing 功能,可以在你的設定檔裡的 corePlugins 屬性中將 boxSizing 設定為 false 來停用功能:

  // tailwind.config.js
  module.exports = {
    corePlugins: {
      // ...
+     boxSizing: false,
    }
  }