brightness()

Baseline 已廣泛支援

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

brightness() CSS <filter-function> 對元素或輸入影像應用線性乘數,使影像看起來更亮或更暗。

試一試

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

語法

css
brightness(amount)

amount 可選

亮度可以指定為 <number><percentage>。小於 100% 的值會使輸入影像或元素變暗,而大於 100% 的值會使其變亮。0% 的值會建立完全黑色的影像或元素,而 100% 的值會保持輸入不變。0%100% 之間的其他值具有線性乘數效果。允許大於 100% 的值,以提供更亮的結果。插值的初始值為 1。不允許使用負值。預設值為 1

以下是等效值的配對

css
brightness(0)   /* Brightness is reduced to zero, so input turns black */
brightness(0%)

brightness(0.4) /* Brightness of input is reduced to 40%, so input is 60% darker */
brightness(40%)

brightness()     /* Brightness of input is not changed */
brightness(1)
brightness(100%)

brightness(2)   /* Brightness of input is doubled */
brightness(200%)

正式語法

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

示例

使用 backdrop-filter 屬性應用亮度

此示例展示瞭如何透過 backdrop-filter CSS 屬性將 brightness() 濾鏡應用於段落。

CSS

css
.container {
  background: url("be_fierce.jpg") no-repeat right / contain #d4d5b2;
}
p {
  backdrop-filter: brightness(150%);
  text-shadow: 2px 2px white;
}

結果

在此示例中,<p> 元素後面的區域中的顏色線性移動。如果 backdrop-filter 屬性設定為 brightness(0%),則帶有 <p> 元素的 <div> 區域將是黑色並隱藏後面的影像。在 brightness(100%) 時,<div> 區域顏色將與輸入 #d4d5b2 相同,並且後面的影像將完全透明。將亮度設定為 150%,如本例所示,影像中的顏色被 <div> 元素的亮度隱藏。

使用 filter 屬性應用亮度

在此示例中,brightness() 濾鏡透過 filter CSS 屬性應用於整個元素,包括內容、邊框和背景影像。結果顯示了三種不同亮度值的變體。

css
p:first-of-type {
  filter: brightness(50%);
}
p:last-of-type {
  filter: brightness(200%);
}

使用 url() SVG 亮度濾鏡應用亮度

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

在此示例中,為了建立一個將應用它的內容變暗 25%(即原始亮度的 75%)的濾鏡,slope 屬性設定為 0.75。然後我們可以透過 id 引用該濾鏡。

給定以下內容

html
<svg role="none">
  <filter id="darken25" color-interpolation-filters="sRGB">
    <feComponentTransfer>
      <feFuncR type="linear" slope="0.75" />
      <feFuncG type="linear" slope="0.75" />
      <feFuncB type="linear" slope="0.75" />
    </feComponentTransfer>
  </filter>
</svg>

以下宣告產生類似的效果

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

在下面的影像中,第一張應用了 brightness() 濾鏡函式,第二張應用了類似的 SVG 亮度函式,第三張是原始影像用於比較。

規範

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

瀏覽器相容性

另見