invert()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2016年9月.
invert() は CSS の関数で、入力画像の色サンプルを反転します。結果は <filter-function> です。
試してみましょう
filter: invert(0);
filter: invert(0.3);
filter: invert(50%);
filter: invert(70%);
filter: invert(1);
<section id="default-example">
<img
class="transition-all"
id="example-element"
src="/shared-assets/images/examples/firefox-logo.svg"
width="200" />
</section>
構文
/* 反転なし */
invert(0)
/* 完全に反転 */
invert()
invert(1)
invert(100%)
/* 60% 反転 */
invert(.6)
invert(60%)
引数
<number>or<percentage>省略可-
変換の量を指定します。
100%の値は完全に反転し、0%の値は入力値を変更しません。0%から100%の間の値は、効果に対する線形乗数となります。補間の初期値は0です。デフォルト値は1です。
形式文法
<invert()> =
invert( [ <number> | <percentage> ]? )
SVG フィルター
SVG の <feComponentTransfer> フィルター要素は、中に含まれている <feFuncR>、<feFuncG>、<feFuncB> の各テーブル要素に同等の反転を生成することで、コンテンツを反転させるのにも使用できます。赤、緑、青の各フィルタープリミティブに対して同じ tableValue を設定し、同じ値にすると、<filter> の ID によって SVG 効果を参照できます。
<svg role="none">
<filter id="invert90">
<feComponentTransfer>
<feFuncR type="table" tableValues="0.1 0" />
<feFuncG type="table" tableValues="0.1 0" />
<feFuncB type="table" tableValues="0.1 0" />
</feComponentTransfer>
</filter>
</svg>
次の宣言は同じ効果が発生します。
filter: invert(0.9);
filter: invert(90%);
filter: url("#invert90"); /* 埋め込まれた SVG */
filter: url("fileName.svg#invert90"); /* 外部の SVG */
例
この例では比較用に 3 つの画像を表示します。invert() フィルター関数を適用した画像、同等の SVG 関数を適用した画像、そして元の画像です。
SVG
適用対象のコンテンツを 70% 反転させる SVG フィルターを生成します。
<svg height="0">
<filter id="invert">
<feComponentTransfer>
<feFuncR type="table" tableValues="0.3 0" />
<feFuncG type="table" tableValues="0.3 0" />
<feFuncB type="table" tableValues="0.3 0" />
</feComponentTransfer>
</filter>
</svg>
CSS
filter または svgFilter クラスに基づいて要素を反転させる CSS を以下に示します。
.filter {
filter: invert(70%);
}
.svgFilter {
filter: url("#invert");
}
仕様書
| Specification |
|---|
| Filter Effects Module Level 1> # funcdef-filter-invert> |
ブラウザーの互換性
関連情報
その他の filter および backdrop-filter プロパティの値で使用できる <filter-function> 関数には、次のものがあります。