View on GitHub
CSS 變數 (CSS variables)
使用 Bootstrap 的 CSS 自定義屬性,以進行更快速且更具前瞻性的設計與開發。
On this page
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 中使用這些變數。