flood-opacity

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

flood-opacity CSS 屬性定義了在 <filter> 元素中,<feFlood><feDropShadow> 元素內當前濾鏡基本子區域的不透明度。如果存在,它將覆蓋元素的 flood-opacity 屬性。

屬性值影響 flood-color 的 alpha 通道;它可以增加 flood-color 的透明度,但不能使由 flood-color 屬性定義的顏色更不透明。

注意: flood-opacity 屬性僅適用於巢狀在 <svg> 中的 <feFlood><feDropShadow> 元素。它不適用於其他 SVG、HTML 或偽元素。

語法

css
/* numeric and percentage values */
flood-opacity: 0.2;
flood-opacity: 20%;

/* Global values */
flood-opacity: inherit;
flood-opacity: initial;
flood-opacity: revert;
flood-opacity: revert-layer;
flood-opacity: unset;

<opacity-value> 是一個 <number><percentage>,表示 SVG 漸變 <flood> 元素的不透明度。

<number>

介於 01 之間(包括 01)的數值。

<percentage>

介於 0%100% 之間(包括 0%100%)的百分比值。

當設定為 00% 時,泛光完全透明。當設定為 1100% 時,元素具有 flood-color 值的完全不透明度,該值可能部分不透明,也可能不部分不透明。

正式定義

初始值black
應用於<svg> 中的 <feFlood><feDropShadow> 元素
繼承性
計算值指定的值,限制在 [0,1] 範圍內
動畫型別由計算值

正式語法

flood-opacity = 
<'opacity'>

<opacity> =
<opacity-value>

<opacity-value> =
<number> |
<percentage>

示例

定義濾鏡的泛光不透明度

此示例演示了 flood-opacity 的基本用例,以及 CSS flood-opacity 屬性如何優先於 flood-opacity 屬性。

HTML

我們有一個 SVG,其中包含幾個 <filter> 元素,每個元素都有一個 <feFlood> 子元素。<feFlood> 將濾鏡定義為 seagreen,第一個透過其 flood-opacity 屬性宣告為完全不透明,第二個宣告為完全透明。我們包含了兩個 <rect> 元素,每個元素都有一個濾鏡屬性。

html
<svg viewBox="0 0 420 120" xmlns="http://www.w3.org/2000/svg">
  <filter id="flood1">
    <feFlood flood-color="seagreen" flood-opacity="1" />
  </filter>
  <filter id="flood2">
    <feFlood flood-color="seagreen" flood-opacity="0" />
  </filter>

  <rect id="r1" filter="url(#flood1)" />
  <rect id="r2" filter="url(#flood2)" />
</svg>

CSS

我們使用 CSS 定義了矩形的 heightwidthxy 位置,並在 SVG 上包含一個重複的線性漸變作為 background-image,以便更明顯地看出泛光顏色的不透明度。

css
svg {
  background-image: repeating-linear-gradient(
    45deg,
    transparent 0 9px,
    #cccccc 0px 10px
  );
}
rect {
  width: 100px;
  height: 100px;
  x: 10px;
  y: 10px;
}
#r2 {
  x: 150px;
}

然後,我們使用 CSS flood-opacity 屬性將不同的泛光不透明度值應用於 <feFlood> 元素。

css
#flood1 feFlood {
  flood-opacity: 0.5;
}
#flood2 feFlood {
  flood-opacity: 90%;
}

結果

屬性將第一個正方形定義為完全不透明,第二個定義為完全透明,但這些值被 CSS flood-opacity 值覆蓋。海綠色濾鏡分別具有 50% 和 90% 的不透明度。

規範

規範
濾鏡效果模組第 1 級
# FloodOpacityProperty

瀏覽器相容性

另見