CSS3

プロパティ

filter

  編集:2022.10.23 by T.A.

[Edge]。→

グラフィック フィルター。

名前 filter
none | <filter-value-list>
初期値 none
適用対象 すべての要素。SVG においては、defs 要素以外のコンテナ要素、すべてのグラフィックス要素use 要素
継承 されない
百分率 受容しない
算出値 指定値
正準的順序 文法に従う
アニメーション型 § フィルターのアニメーションの注釈文を見よ
none
どのフィルター効果も適用されない。
<filter-value-list>
=[<filter-function> | <url>]+
<filter-function>
フィルター関数
<url>
filter 要素へのフィルター参照 ― 例: url(commonfilters.svg#filter) 。フィルター参照の参照先のオブジェクトが[存在しない/filter 要素でない]場合、フィルター連鎖は一体として無視され、オブジェクトにはフィルターは適用されないことになる。

filter プロパティ用の none 以外の値は、[position プロパティが[absolute/fixed]にされた有位置な子孫 ]用に当の要素の包含ブロックを作成させる ― ただし、要素が現在の閲覧文脈における文書の根要素である場合は除く。リストを成す各関数は、供された順序で適用される。

このリスト内の最初の[フィルタ関数/filter 参照]は、入力画像として要素(SourceGraphic)をとる。後続の各 演算は、その前の[フィルタ関数/filter 参照]からの出力を入力画像としてとる。filter 要素参照関数は、代替入力を指定できるが、依然として、前の出力を SourceGraphic として利用する。

color-interpolation-filters は、フィルタ関数には影響しない。フィルタ関数は、sRGB 色空間内で演算するものとする。

none 以外の算出値による結果は、CSS opacity プロパティがするのと同じ仕方で積層文脈を作成させる。要素のすべての子孫は、一体のグループとしてフィルター効果が適用された上で、グループとして描画される。

要素が filter プロパティのターゲットにされても、要素の CSS ボックスの幾何は影響されない ― filter は、要素のボーダーボックスの外側にも何かを塗るようにさせ得るが。

概念的には、フィルタ演算は、描かれたどの部位にも効果を及ぼす。これには、フィルタが適用される要素に加えて、要素の子孫の[内容、背景、ボーダー、テキスト装飾、外形線、可視なスクロール用の仕組み]も含まれる。フィルタ演算は、要素の局所座標系にて適用される。

組成モデルは、SVG 組成モデル [SVG11] に従い、次の順に適用される:

フィルタ効果、
切り抜き、
マスク処理、
不透明度

¶省く

フィルター関数

<filter-function>
<blur()>
| <brightness()>
| <contrast()>
| <drop-shadow()>
| <grayscale()>
| <hue-rotate()>
| <invert()>
| <opacity()>
| <sepia()>
| <saturate()>

これらの各関数の引数には、省略されたときにとる 省略時の既定値 に加え、補間用の初期値 も定義される。後者は、[ フィルタ関数リストの補間にて補足される関数 ]に利用される引数の値を与え、当の関数にその定義が与えられていない場合は、省略時の既定値と同じになるとする。

【これらの用語は、この訳にて定義し直している。原文における“初期値”は、[引数ではなく、属性/プロパティ]の初期値を参照していて、惑わされる。】

注記: 内容作成者の便利のため、フィルタ関数には、引数の省略時の既定値補間用の初期値とが相違するものもある。例えば、[<grayscale()><sepia()><invert()> ]用の省略時の既定値は 1 (効果 100% を適用する)になる一方で,補間用の初期値は 0(効果なし)になる。

サンプル:/ファイル名:Com/Picture.jpg
blur()
blur(<length>?)

入力画像に Gaussian ぼかしを適用する。パラメタは、Gaussian 関数に対する標準偏差の値を定義する。パラメーターには CSS 長さを指定できるが、百分率値は受容しない。

この関数に等価なマークアップは下に与える。

負な値は許容されない。

省略時の既定値は 0px とする。

注記: 標準偏差は、box-shadow のぼかし半径とは異なる。

<IMG src="Com/Picture.jpg"
 style="filter:blur(1px);
">
<IMG src="Com/Picture.jpg"
 style="filter:blur(2px);
">
brightness()
brightness(<number-percentage>?)

入力画像の明るさ(brightness)を変える。値 0% は完全に黒の画像を作成させる。値 100% は入力を変更しない。他の値による効果は線型になる。100% を超える値も許容され、より明るくする。

この関数に等価なマークアップは下に与える【したがって、alpha 成分は変わらないことになる。】

負な値は許容されない。

省略時の既定値は 1 とする。

<IMG src="Com/Picture.jpg"
 style="filter:brightness(1.5);
">
<IMG src="Com/Picture.jpg"
 style="filter:brightness(2);
">
<IMG src="Com/Picture.jpg"
 style="filter:brightness(0.5);
">

<IMG src="Com/Picture.jpg"
 style="filter:brightness(50%);
">
<IMG src="Com/Picture.jpg"
 style="filter:brightness(150%);
">
contrast()
contrast(<number-percentage>?)

入力のコントラストを調整する。値 0% は 完全に gray な画像を作成することになる。値 100% は入力を変更しない。100% を超える値も許容され、よりコントラストが高い結果を供する。

この関数に等価なマークアップは下に与える。

負な値は許容されない。

省略時の既定値は 1 とする。

<IMG src="Com/Picture.jpg"
 style="filter:contrast(0.5);
">
<IMG src="Com/Picture.jpg"
 style="filter:contrast(1.5);
">

drop-shadow()
drop-shadow(<color>? && <length>{2,3})

<length>{2,3}横方向 縦方向 ぼかし

入力画像に落影効果を適用する。落影は、実質的に、[入力画像の alpha マスクを、ある特定の色で描いて、ぼかして、オフセットしたもの]であって、当の画像の下に組成されるものである。値は box-shadow [CSS3BG] に対するときと同じに解釈されるが、省略可能な 3 個目の <length> 値は、ぼかし半径に代えて標準偏差を与える。

この関数に等価なマークアップは下に与える。

省略時の既定値は[<length> はすべて 0 / <color> は color プロパティからとる]とする。

補間用の初期値は[<length> はすべて 0 / <color> は transparent]とする。

このレベルの仕様では、[拡幅距離/複数の影]は受容されないことに注意。

注記: 標準偏差は、box-shadow のぼかし半径とは異なる。

<IMG src="Com/Picture.jpg"
 style="filter:drop-shadow(#00f 2px 5px);
">
<IMG src="Com/Picture.jpg"
 style="filter:drop-shadow(#00f 2px 5px 2px);
">

grayscale()
grayscale(<number-percentage>?)

入力画像を grayscale に変換する。パラメーターは、変換の比率を定義する。値 100% は、完全に grayscale になる。値 0% は入力を変更しない。他の値による効果は線型になる。100% を超える値も許容されるが、ユーザー エージェントは値を 1 に切り詰めるものとする。

この関数に等価なマークアップは下に与える。

負な値は許容されない。

省略時の既定値は 1 とする。

補間用の初期値は 0 とする。

<IMG src="Com/Picture.jpg"
 style="filter:grayscale(0.5);
">
<IMG src="Com/Picture.jpg"
 style="filter:grayscale(1);
">

hue-rotate()
hue-rotate([<angle> | <zero>]?)

入力画像に色相回転を適用する。パラメーターは、色環の周における、入力 sample を調整する度数を定義する。値 0deg は入力を変更しない。360deg を超えるアニメーションを許容するため、実装は、この値を【例えば 0 以上~ 360 未満に】正規化しないものとする。

この関数に等価なマークアップは下に与える。

<angle> が 0 の場合、単位識別子は省略されてもよい。

省略時の既定値は 0deg とする。

<IMG src="Com/Picture.jpg"
 style="filter:hue-rotate(30deg);
">
<IMG src="Com/Picture.jpg"
 style="filter:hue-rotate(60deg);
">

<IMG src="Com/Picture.jpg"
 style="filter:hue-rotate(90deg);
">

invert()
invert(<number-percentage>?)

入力画像内の sample を反転する。パラメーターは変換の比率を定義する。値 100% は完全に反転する。値 0% は入力を変更しない。他の値による効果は線型になる。100% を超える値も許容されるが、ユーザー エージェントは値を 1 に切り詰めるものとする。

この関数に等価なマークアップは下に与える。

負な値は許容されない。

省略時の既定値は 1 とする。

補間用の初期値は 0 とする。

<IMG src="Com/Picture.jpg"
 style="filter:invert(0.2);
">
<IMG src="Com/Picture.jpg"
 style="filter:invert(0.5);
">
<IMG src="Com/Picture.jpg"
 style="filter:invert(1);
">
opacity()
opacity(<number-percentage>?)

入力画像内の sample に透明度を適用する。パラメーターは、変換の比率を定義する。値 0% は完全に透明になる。値 100% は入力を変更しない。他の値による効果は線型になる。これは、入力画像の sample をその量で乗算することに等価になる。100% を超える値も許容されるが、ユーザー エージェントは値を 1 に切り詰めるものとする。

この関数に等価なマークアップは下に与える。

負な値は許容されない。

省略時の既定値は 1 とする。

注記: 不透明度フィルタ関数は、opacity プロパティの略式になるものと意図されていない。さらには、次の原始フィルタに渡す前に、中間原始フィルタ結果の透明度を設定できるようにする。不透明度フィルタ関数が最後の原始フィルタとして設定された場合、opacity プロパティの値は その最後の結果に乗算され、より透明な内容になり得る。

<IMG src="Com/Picture.jpg"
 style="filter:opacity(0.2);
">
<IMG src="Com/Picture.jpg"
 style="filter:opacity(0.5);
">
saturate()
saturate(<number-percentage>?)

入力画像の彩度を変える。パラメーターは、変換の比率を定義する。値 0% は彩度なしにする。値 100% は入力を変更しない。他の値による効果は線型になる。100% を超える値も許容され、彩度をさらに上げる。

この関数に等価なマークアップは下に与える。

負な値は許容されない。

省略時の既定値は 1 とする。

<IMG src="Com/Picture.jpg"
 style="filter:saturate(0.2);
">
<IMG src="Com/Picture.jpg"
 style="filter:saturate(0.5);
">
<IMG src="Com/Picture.jpg"
 style="filter:saturate(0.9);
">
sepia()
sepia(<number-percentage>?)

入力画像を sepia に変換する。パラメーターは、変換の比率を定義する。値 100% は完全に sepia にする。値 0% は入力を変更しない。他の値による効果は線型になる。100% を超える値も許容されるが、ユーザー エージェントは値を 1 に切り詰めるものとする。

この関数に等価なマークアップは下に与える。

負な値は許容されない。

省略時の既定値は 1 とする。

補間用の初期値は 0 とする。

<IMG src="Com/Picture.jpg"
 style="filter:sepia(0.2);
">
<IMG src="Com/Picture.jpg"
 style="filter:sepia(0.5);
">
<IMG src="Com/Picture.jpg"
 style="filter:sepia(0.9);
">
<number-percentage>
<number> | <percentage>

(この生成規則は、元々は [CSS-VALUES-4] に定義されていたが、その仕様から廃されたので、ここに挙げている。近いうち、<number> | <percentage> に改められるであろう。)

¶省く→


テスト
HTML:

ここに表示
HTML:

ここに表示
スクリプト:


スクリプト:



表示内容:
表示内容: