エフェクト

backdrop-filter

backdrop-filter は、要素の後ろに見えているものにぼかしや色の変化をかけます。すりガラスのような半透明のパネルを作るときの定番です。

構文

none | <filter-value-list>

<filter-value-list> = [ <filter-function> | <url> ]+

プレビュー

プリセット
右下の角をドラッグするとサイズを変えられます

コード

.box {
  background-color: #ffffff33;
  border-radius: 16px;
  backdrop-filter: blur(8px);
}

コントロール

blur(8px)
<length>
関数を追加

解説

filter との違い

filter は要素そのもの(子要素も含む)を加工しますが、backdrop-filter は要素の後ろにあるものだけを加工し、要素自身の背景や文字はそのまま描きます。使える関数は filter と同じで、空白で区切って並べると左から順にかかります。

背景を半透明にする

加工された後ろの景色は、要素の背景の下に描かれます。背景が不透明だと何も見えないので、半透明の背景色と組み合わせます。このページのプレビューでは background-color: #ffffff33 を付けていて、後ろの模様はプレビュー用の飾りです。 効果がかかるのは要素の枠の内側だけで、border-radius の角丸にも沿います。

気をつけること

  • filter と同じく、none 以外を指定するとスタッキングコンテキストと、position: fixed の子孫の基準になります。
  • 祖先に filter や 1 未満の opacity、mix-blend-mode などがあると、加工されるのはその祖先の中に描かれたものまでになります。 思ったより後ろがぼけないときは、祖先のスタイルを確かめてください。
  • ぼかしは描画の負荷が高めです。広い面積や、スクロールで動き続ける要素に多用しないようにしましょう。