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

View in English Always switch to English

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>

構文

css
/* 反転なし */
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> ]? )
この構文は CSS Specification による最新の標準を反映しています。すべてのブラウザーがすべての部分を実装しているわけではありません。サポート情報についてはブラウザーの互換性を参照してください。

SVG フィルター

SVG の <feComponentTransfer> フィルター要素は、中に含まれている <feFuncR><feFuncG><feFuncB> の各テーブル要素に同等の反転を生成することで、コンテンツを反転させるのにも使用できます。赤、緑、青の各フィルタープリミティブに対して同じ tableValue を設定し、同じ値にすると、<filter> の ID によって SVG 効果を参照できます。

html
<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>

次の宣言は同じ効果が発生します。

css
filter: invert(0.9);
filter: invert(90%);
filter: url("#invert90"); /* 埋め込まれた SVG */
filter: url("fileName.svg#invert90"); /* 外部の SVG */

この例では比較用に 3 つの画像を表示します。invert() フィルター関数を適用した画像、同等の SVG 関数を適用した画像、そして元の画像です。

SVG

適用対象のコンテンツを 70% 反転させる SVG フィルターを生成します。

html
<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 を以下に示します。

css
.filter {
  filter: invert(70%);
}

.svgFilter {
  filter: url("#invert");
}

仕様書

Specification
Filter Effects Module Level 1
# funcdef-filter-invert

ブラウザーの互換性

関連情報

その他の filter および backdrop-filter プロパティの値で使用できる <filter-function> 関数には、次のものがあります。