contrast()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
contrast()
は CSS の関数で、入力画像のコントラストを調整します。結果は <filter-function>
です。
試してみましょう
構文
contrast(amount)
引数
amount
-
結果のコントラストで、
<number>
または<percentage>
で指定します。100%
未満の値ではコントラストが下がり、100%
を超える値ではコントラストが上がります。0
または0%
の値では画像が完全に灰色になり、1
または100%
の値では入力が変更されないままになります。補間の初期値は1
です。
以下は、等価な値のペアです。
contrast(0) /* 完全な灰色 */
contrast(0%)
contrast(0.65) /* 65% のコントラスト */
contrast(65%)
contrast(1) /* 効果なし */
contrast(100%)
contrast(2) /* 2 倍のコントラスト */
contrast(200%)
形式文法
例
backdrop-filter プロパティで
この例では、 contrast()
フィルターを backdrop-filter
プロパティで段落と東福テキストに適用しており、 <p>
と <code>
の背後の領域で色が変化しています。
.container {
background: url(image.jpg) no-repeat center / contain #339;
}
p {
backdrop-filter: contrast(0.5);
}
code {
backdrop-filter: contrast(0.15);
}
filter プロパティで
この例では、 contrast()
フィルターを CSS の filter
プロパティを使用して適用し、コンテンツ、境界線、背景、影を含む要素全体の色をシフトさせることでコントラストを変更しています。
p:first-of-type {
filter: contrast(30%);
}
p:last-of-type {
filter: contrast(300%);
}
url() と SVG の contrast フィルター
SVG の <filter>
要素を使用して、カスタムフィルター効果を定義し、それを id
で参照することができます。 <filter>
の <feComponentTransfer>
プリミティブは、ピクセルレベルでの色変換を可能にします。 次のものが指定されたとします。
<filter id="contrast">
<feComponentTransfer>
<feFuncR type="linear" slope="2" intercept="-0.5"/>
<feFuncG type="linear" slope="2" intercept="-0.5"/>
<feFuncB type="linear" slope="2" intercept="-0.5"/>
</feComponentTransfer>
</filter>
これらの値は同じ結果を生み出します。
filter: contrast(200%);
filter: url(#contrast); /* 埋め込み SVG による */
filter: url(folder/fileName.svg#contrast); /* 外部 SVG フィルター定義 */
この例では、 3 つの画像を表示させています。 1 つ目は、 contrast()
フィルター関数を適用した画像、 2 つ目は、等価な url()
フィルターを適用した画像、そして比較用に元の画像です。
仕様書
Specification |
---|
Filter Effects Module Level 1 # funcdef-filter-contrast |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- CSS フィルター効果モジュール
- その他の
filter
およびbackdrop-filter
プロパティの値で使用できる<filter-function>
関数には、次のものがあります。