filter
CSSの filter プロパティはその名前通り、指定した要素にフィルター効果を適用する。
filter プロパティには1つまたは複数の関数を値として指定する。複数指定する際は半角スペースで区切りで繋げる。初期値にはnoneが指定されている。
<div class="box">
<img src="sample.jpg" alt="">
</div>
.box {
width: 600px;
height: 400px;
margin: 0 auto;
margin-top: 100px;
}
.box img {
max-width: 100%;
filter: brightness(0.8) contrast(120%);
}
指定できる関数は、以下の10種類用意されている。
関数名 | 効果 | 記述例 |
blur | ぼかし | filter: blur(5px); |
brightness | 明度 | filter: brightness(50%); |
contrast | コントラスト | filter: contrast(50%); |
drop-shadow | ドロップシャドウ | filter: drop-shadow(3px 3px 5px #000); |
grayscale | グレースケール | filter: grayscale(50%); |
hue-rotate | 色相環 | filter: hue-rotate(120deg); |
invert | 階調の反転 | filter: invert(40%); |
opacity | 不透明度 | filter: opacity(30%); |
saturate | 彩度 | filter: saturate(30%); |
sepia | セピア | filter: sepia(50%); |
backdrop-filter
backdrop-filterは、要素の背後領域にぼかしなどのグラフィック効果を与えられるCSSプロパティである。
有名なものだと、iPhoneやiPadに採用されているすりガラス風加工のグラスモーフィズムなどがある。
背後すべてに適用されるため、一部が透明な要素や、背景がある前提で使用するプロパティである。
プロパティ値の名称や効果は上記filterプロパティと同様。
backdrop-filterは、Safariのみ -webkit- のプレフィックスを付けることで対応可能。
filterとbackdrop-filterの違い
filterとbackdrop-filterの違いはフィルター効果を適用できる対象にある。
- filter:指定要素自体に効果が適用する
- backdrop-filter:指定要素の背後領域に効果が適用する