contrast()

Baseline 已廣泛支援

此特性已非常成熟,可在多種裝置和瀏覽器版本上使用。自 ⁨2016 年 9 月⁩以來,它已在各大瀏覽器中可用。

contrast() CSS 函式 用於調整輸入影像的對比度。其結果是一個 <filter-function>

試一試

filter: contrast(1);
filter: contrast(1.75);
filter: contrast(50%);
filter: contrast(0);
<section id="default-example">
  <img
    class="transition-all"
    id="example-element"
    src="/shared-assets/images/examples/firefox-logo.svg"
    width="200" />
</section>

語法

css
contrast(amount)

amount 可選

結果的對比度,指定為 <number><percentage>。低於 100% 的值會降低對比度,而高於 100% 的值會增加對比度。值為 00% 將建立一個完全灰色的影像,而值為 1100% 則保持輸入不變。不允許使用負值。插值的初始值為 1。預設值為 1

以下是等效值對

css
contrast(0)    /* Completely gray */
contrast(0%)

contrast(0.65) /* 65% contrast */
contrast(65%)

contrast()     /* No effect */
contrast(1)
contrast(100%)

contrast(2)    /* Double contrast */
contrast(200%)

正式語法

<contrast()> = 
contrast( [ <number> | <percentage> ]? )

示例

與 backdrop-filter 屬性配合使用

此示例透過 backdrop-filter CSS 屬性對段落和等寬文字應用 contrast() 濾鏡,對 <p><code> 後面的區域進行顏色偏移。

css
.container {
  background: url("unity_for_the_people.jpg") no-repeat center / contain #333399;
}
p {
  backdrop-filter: contrast(0.5);
}
code {
  backdrop-filter: contrast(0.15);
}

與 filter 屬性配合使用

此示例透過 filter CSS 屬性應用 contrast() 濾鏡,透過改變整個元素(包括內容、邊框、背景和陰影)的顏色來改變對比度。

css
p:first-of-type {
  filter: contrast(30%);
}
p:last-of-type {
  filter: contrast(300%);
}

與 url() 和 SVG 對比度濾鏡配合使用

SVG <filter> 元素用於定義自定義濾鏡效果,然後可以透過 id 引用這些效果。<filter><feComponentTransfer> 原語支援畫素級顏色重對映。給定以下內容

html
<svg
  xmlns="http://www.w3.org/2000/svg"
  id="svg"
  viewBox="0 0 240 151"
  height="0"
  width="0"
  overflow="visible"
  color-interpolation-filters="sRGB">
  <filter id="contrast">
    <feComponentTransfer>
      <feFuncR type="linear" slope="2" intercept="-0.5" />
      <feFuncG type="linear" slope="2" intercept="-0.5" />
      <feFuncB type="linear" slope="2" intercept="-0.5" />
    </feComponentTransfer>
  </filter>
</svg>

這些值產生相同的結果

css
filter: contrast(200%);
filter: url("#contrast"); /* with embedded SVG */
filter: url("folder/fileName.svg#contrast"); /* external svg filter definition */

此示例展示了三張影像:應用了 contrast() 濾鏡函式的影像,應用了等效 url() 濾鏡的影像,以及原始影像用於比較

規範

規範
濾鏡效果模組第 1 級
# funcdef-filter-contrast

瀏覽器相容性

另見