Skip to main content Skip to docs navigation
View on GitHub

CSS 變數 (CSS variables)

使用 Bootstrap 的 CSS 自定義屬性,以進行更快速且更具前瞻性的設計與開發。

六角學院的 Bootstrap 5 課程上線囉,立即與萬人一同學習最專業、最深入的 Bootstrap 5 課程。

立即上課去

Bootstrap 在其編譯的 CSS 中包含了許多 CSS 自定義屬性 (變數) 用於實時自定義,無需重新編譯 Sass。當您在瀏覽器中的檢查工具、code sandbox、或通用原型中使用這些工具,可以輕鬆查看訪問值,像是我們的主題色彩、斷點、以及主要字體。

我們所有的自定義屬性都以 bs- 為前綴 以避免與第三方 CSS 發生衝突。

Root variables

這是我們包含的變數(請注意 :root 是必須的),可以加載在任何有載入 Bootstrap CSS 的地方。他們位於我們的 _root.scss 資料夾且包含在我們以編譯的 dist 文件中。

:root {
  --bs-blue: #0d6efd;
  --bs-indigo: #6610f2;
  --bs-purple: #6f42c1;
  --bs-pink: #d63384;
  --bs-red: #dc3545;
  --bs-orange: #fd7e14;
  --bs-yellow: #ffc107;
  --bs-green: #198754;
  --bs-teal: #20c997;
  --bs-cyan: #0dcaf0;
  --bs-white: #fff;
  --bs-gray: #6c757d;
  --bs-gray-dark: #343a40;
  --bs-gray-100: #f8f9fa;
  --bs-gray-200: #e9ecef;
  --bs-gray-300: #dee2e6;
  --bs-gray-400: #ced4da;
  --bs-gray-500: #adb5bd;
  --bs-gray-600: #6c757d;
  --bs-gray-700: #495057;
  --bs-gray-800: #343a40;
  --bs-gray-900: #212529;
  --bs-primary: #0d6efd;
  --bs-secondary: #6c757d;
  --bs-success: #198754;
  --bs-info: #0dcaf0;
  --bs-warning: #ffc107;
  --bs-danger: #dc3545;
  --bs-light: #f8f9fa;
  --bs-dark: #212529;
  --bs-primary-rgb: 13, 110, 253;
  --bs-secondary-rgb: 108, 117, 125;
  --bs-success-rgb: 25, 135, 84;
  --bs-info-rgb: 13, 202, 240;
  --bs-warning-rgb: 255, 193, 7;
  --bs-danger-rgb: 220, 53, 69;
  --bs-light-rgb: 248, 249, 250;
  --bs-dark-rgb: 33, 37, 41;
  --bs-white-rgb: 255, 255, 255;
  --bs-black-rgb: 0, 0, 0;
  --bs-body-color-rgb: 33, 37, 41;
  --bs-body-bg-rgb: 255, 255, 255;
  --bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
  --bs-body-font-family: var(--bs-font-sans-serif);
  --bs-body-font-size: 1rem;
  --bs-body-font-weight: 400;
  --bs-body-line-height: 1.5;
  --bs-body-color: #212529;
  --bs-body-bg: #fff;
}

元件變數

我們也開始將自定義屬性用來當做各元件的局部變數。如此一來我們可以減少編譯後的 CSS,確保樣式不會在巢狀表格之類的地方繼承,並在 Sass 編譯後允許 Bootstrap 元件進行一些基本的重新樣式化和擴展。

請看我們的表格文件,以 了解我們如何使用 CSS 變數.

我們也在網格中使用 CSS 變數(主要用於 gutters 上),而將來還會有更多的元件使用。

範例

CSS 變數提供了與 Sass 變數相似的靈活性,但無需先進行編譯其可供瀏覽器運作。舉例來說,在這裡我們使用 CSS 變數重置頁面的字體和連結樣式。

body {
  font: 1rem/1.5 var(--bs-font-sans-serif);
}
a {
  color: var(--bs-blue);
}

網格斷點

雖然我們將網格斷點包含 CSS 變數 (xs 除外),但請注意 CSS 變數在 media queries 中不起作用。這是在 CSS 規範中為變數所設計的,但在未來幾年可能會隨著對 env() 的支持而改變。查看 此 Stack Overflow answer 以獲取一些有用的鏈接。 同時,您可以在其他 CSS 情況以及 JavaScript 中使用這些變數。