contrast-color()
contrast-color() CSS 函式接受一個 color 值並返回一個對比色。此函式通常確保 WCAG AA 最低對比度。瀏覽器可能會使用不同的、更好的演算法。
contrast-color() 使您可以輕鬆地指定文字顏色並自動生成對比鮮明的背景顏色,反之亦然。它避免了維護背景-文字顏色對的需要。
語法
css
contrast-color(red)
contrast-color(var(--backgroundColor))
引數
返回值
white 或 black 的 <named-color> 值。
描述
contrast-color() 函式返回 white 或 black 值,具體取決於哪個值與輸入顏色對比度最大。如果 white 和 black 與輸入顏色具有相同的對比度,則返回 white。
警告:WCAG AA (4.5:1) 對比度並非在所有情況下都能產生清晰可讀的文字。中等色調的背景顏色通常無法與黑色或白色前景提供足夠的對比度。例如,在皇家藍色(#2277d3)背景上使用 contrast-color() 會產生黑色文字,這對於小文字來說是不可讀的。因此,建議將淺色或深色與 contrast-color() 函式一起使用。
示例
按鈕的對比文字
在以下示例中,當您更改提交 <button> 文字的背景顏色時,瀏覽器會自動為其應用對比色。
css
:root {
--button-color: lightblue;
}
button {
background-color: var(--button-color);
/* Set contrasting text color automatically */
color: contrast-color(var(--button-color));
}
淺色和深色模式使用
在以下示例中,prefers-color-scheme 媒體查詢用於根據作業系統或瀏覽器配色方案設定背景顏色。contrast-color() 函式用於自動設定文字顏色。
嘗試更改瀏覽器或作業系統的深色模式設定以檢視效果。
css
:root {
--background-color: navy;
}
@media (prefers-color-scheme: light) {
:root {
--background-color: wheat;
}
}
body,
a {
background-color: var(--background-color);
color: contrast-color(var(--background-color));
}
規範
| 規範 |
|---|
| CSS 顏色模組第五版 # contrast-color |
瀏覽器相容性
載入中…
另見
contrast()- CSS 顏色模組
- CSS 自定義屬性和
var() prefers-contrast和prefers-color-scheme@media特性- WCAG:顏色對比度
- 如何在 CSS 中讓瀏覽器選擇對比色(webkit.org,2025)
- WebAIM 對比度檢查器(webaim.org,2025)