このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

CSS flood-opacity プロパティ

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.

flood-opacityCSS のプロパティで、<filter> 内の <feFlood> および <feDropShadow> 要素における、現在のフィルタープリミティブのサブ領域の不透明度を定義します。存在する場合、この属性は要素の flood-opacity 属性よりも優先します。

このプロパティの値は、flood-color のアルファチャンネルに影響を与えます。これにより、flood-color の透過率を高めることは可能ですが、flood-color プロパティで定義された色の透過率を高めることはできません。

メモ: flood-opacity プロパティは、<svg> に含まれた <feFlood> および <feDropShadow> 要素にのみ適用されます。他の SVG 要素、HTML 要素、擬似要素には適用されません。

構文

css
/* 数値とパーセント値 */
flood-opacity: 0.2;
flood-opacity: 20%;

/* グローバル値 */
flood-opacity: inherit;
flood-opacity: initial;
flood-opacity: revert;
flood-opacity: revert-layer;
flood-opacity: unset;

<opacity-value> は、 <number> または <percentage> で SVG グラデーションの <flood> 要素の不透過度を表します。

<number>

0 以上 1 以下の値。

<percentage>

0% 以上 100% 以下のパーセント値。

0 または 0% を設定すると、塗りつぶしは完全に透明になります。1 または 100% を設定すると、要素は flood-color の値に応じた不透過度になり、部分的に不透過になる場合もありますし、ならない場合もあります。

公式定義

初期値black
適用対象<feFlood> and <feDropShadow> elements in <svg>
継承なし
計算値指定値が [0,1] の範囲内にクリップされたもの
アニメーションの種類by computed value

形式文法

flood-opacity = 
<'opacity'>

<opacity> =
<opacity-value>

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

フィルターの塗りつぶしの不透過度を定義

この例では、flood-opacity の基本的な用途と、CSS の flood-opacity プロパティが flood-opacity 属性よりも優先される仕組みについて説明しています。

HTML

SVG にはいくつかの <filter> 要素があり、それぞれに <feFlood> の子要素が含まれています。<feFlood> 要素はフィルターを seagreen として定義しており、1 つ目の要素は flood-opacity 属性によって完全に不透明に、2 つ目のは完全に透明に設定されています。さらに、2 つの <rect> 要素があり、それぞれに filter 属性を付けています。

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

heightwidthx、および y を定義し、CSS を使用して矩形の位置指定を行います。また、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 を使用し、<feFlood> 要素にそれぞれ異なる不透明度を設定します。

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

結果

属性では、1 つ目の正方形を完全に不透明に、2 つ目を完全に透明に定義していましたが、これらの値は CSS の flood-opacity の値によって上書きされました。シーグリーンのフィルターは、それぞれ 50% と 90% の不透過度となっています。

仕様書

Specification
Filter Effects Module Level 1
# FloodOpacityProperty

ブラウザーの互換性

関連情報