contrast-color()

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

contrast-color() CSS 函式接受一個 color 值並返回一個對比色。此函式通常確保 WCAG AA 最低對比度。瀏覽器可能會使用不同的、更好的演算法。

contrast-color() 使您可以輕鬆地指定文字顏色並自動生成對比鮮明的背景顏色,反之亦然。它避免了維護背景-文字顏色對的需要。

語法

css
contrast-color(red)
contrast-color(var(--backgroundColor))

引數

color

任何有效的 <color> 值。

返回值

whiteblack<named-color> 值。

描述

contrast-color() 函式返回 whiteblack 值,具體取決於哪個值與輸入顏色對比度最大。如果 whiteblack 與輸入顏色具有相同的對比度,則返回 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

瀏覽器相容性

另見