ウェブデザインで近年よく見られる、背景をぼかしたりするなどのフィルター(エフェクト)がありますが、CSSのbackdrop-filterプロパティを使うと簡単に実装が可能です。
今回は、そのbackdrop-filterプロパティについて詳しく解説していきます。
backdrop-filterプロパティとは
backdrop-filterプロパティとは、指定した要素の背景(背後領域)に対してぼかしなどのフィルター(エフェクト)をかける事が出来るプロパティです。
よく使われているものとしては、固定ヘッダーの背景をぼかして半透明にしたりするものが最近は多いかと思います。
次項で、基本的な使い方や指定出来る値について解説していきます。
backdrop-filterプロパティの基本的な使い方
backdrop-filterプロパティの基本的な使い方は以下のようになります。
.box {
backdrop-filter: フィルター(エフェクト)の種類と値;
}
上記のように、フィルター効果を付けたい要素に対してbackdrop-filterプロパティを設定しフィルターの種類とその値を指定します。
filterプロパティとの違いについて
backdrop-filterプロパティと似ているプロパティで、filterプロパティがあります。
この2つの違いとしては、filterプロパティは指定した要素すべてにフィルターがかかりますが、backdrop-filterプロパティは指定した要素の背景(背後領域)のみにフィルターがかかります。
この2つのプロパティの違いを理解し、適切なものを選んで使用してください。
backdrop-filterプロパティで使用できるフィルター(エフェクト)について
backdrop-filterプロパティで使用できるフィルター(エフェクト)については以下の通りです。
各表示例で使用するHTML・CSSは以下のようになります。
<div class="blk">
<p>backdrop-filterプロパティで<br>要素の背景にファイルター効果を<br>つける方法と使い方</p>
</div>
.blk {
width: 100%;
padding: 50px 20px;
background: url(/file/sample_img.jpg) no-repeat center center;
background-size: cover;
}
p {
font-size: 2.0rem;
font-weight: bold;
text-align: center;
line-height: 1.5;
padding: 20px 20px;
background-color: rgba(255,255,255,0.5);
}
none
フィルター(エフェクト)はありません。これが初期値となります。
p {
backdrop-filter: none;
}
blur
blurは指定した要素の背景(背後領域)をぼかすフィルターです。
値が大きいとぼかし具合が大きくなります。
p {
backdrop-filter: blur(10px);
}
backdrop-filterプロパティで
要素の背景にファイルター効果を
つける方法と使い方
brightness
brightnessは指定した要素の背景(背後領域)の明るさを調整できるフィルターです。
1(100%)が初期値となり、大きくなると明るくなり、小さくなると暗くなります。
p {
backdrop-filter: brightness(150%);
}
backdrop-filterプロパティで
要素の背景にファイルター効果を
つける方法と使い方
contrast
contrastは指定した要素の背景(背後領域)のコントラスト(輝度の差、明暗比)を調整できるフィルターです。
1(100%)が初期値となり、大きくなると高コントラスト、小さくなると低コントラストとなります。
p {
backdrop-filter: contrast(50%);
}
backdrop-filterプロパティで
要素の背景にファイルター効果を
つける方法と使い方
grayscale
grayscaleは指定した要素の背景(背後領域)を白黒(モノクロ)に変換するフィルターです。
0(0%)が初期値となり、1(100%)が完全な白黒となります。
p {
backdrop-filter: grayscale(100%);
}
backdrop-filterプロパティで
要素の背景にファイルター効果を
つける方法と使い方
hue-rotate
hue-rotateは指定した要素の背景(背後領域)の色相環の回転を変更するフィルターです。
値は角度(deg)で指定し、0degが初期値となり、360degで初期値に戻ります(1回転)。
p {
backdrop-filter: hue-rotate(90deg);
}
backdrop-filterプロパティで
要素の背景にファイルター効果を
つける方法と使い方
invert
invertは指定した要素の背景(背後領域)の色を反転させることができるフィルターです。
0(0%)が初期値となり、1(100%)が完全に反転した色となります。
p {
backdrop-filter: invert(100%);
}
backdrop-filterプロパティで
要素の背景にファイルター効果を
つける方法と使い方
sepia
sepiaは指定した要素の背景(背後領域)にセピア調の色合いを加える事できるフィルターです。
0(0%)が初期値となり、1(100%)が完全なセピア調となります。
p {
backdrop-filter: sepia(100%);
}
backdrop-filterプロパティで
要素の背景にファイルター効果を
つける方法と使い方
saturate
saturateは指定した要素の背景(背後領域)の彩度を調整できるフィルターです。
1(100%)が初期値となり、値が大きくなると彩度が高くなり、小さくなると彩度が低くなります。
p {
backdrop-filter: saturate(300%);
}
backdrop-filterプロパティで
要素の背景にファイルター効果を
つける方法と使い方
drop-shadow、opacityについて
上記で紹介したほかに、backdrop-filterプロパティで指定出来るフィルター(値)としてdrop-shadowやopacityがあります。これらはいろいろ調べたのですが、どうにも動作が不安定で検証できず、バグのようなものも多くありそうなので今回は省略させていただきます。これらのフィルターに関しては他の手段で実装した方がよさそうです。
旧バージョンのブラウザなどに対する対応
ほとんどのブラウザの場合問題ないのですが、少し前のバージョンのFirefoxやSafariなど対応していないものがあります。その場合はベンダープレフィックスを付けてください。
最初からベンダープレフィックスを付けたものも記述してあげると後からの手間もなくなります。
p {
-webkit-backdrop-filter: blur(10px);
backdrop-filter: blur(10px);
}
※上記はぼかし(blur)の場合
さいごに
いかがでしたでしょうか。
今回は、backdrop-filterプロパティで要素の背景にファイルター効果をつける方法と使い方を解説しました。
こうしたフィルター効果を上手く使用する事でおしゃれなデザイン再現・作成できるようになります。ぜひ使用してみてください。