エフェクト

isolation

isolation は、要素を混ぜ方のまとまり(グループ)として切り離すかどうかを指定します。isolate にすると、中の子に書いた mix-blend-mode が、要素の外の背景とは混ざらなくなります。

構文

auto | isolate

プレビュー

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

コード

.box {
  background-color: transparent;
  isolation: isolate;
}

.box > :nth-child(2) {
  mix-blend-mode: multiply;
}

コントロール

isolationisolate
isolation

解説

子の mix-blend-mode がどこまで混ざるか

mix-blend-mode は、要素をその後ろに描かれているものと混ぜます。初期値の auto では、親の箱を飛び越えて、さらに後ろにあるページの背景などとも混ざります。親に isolation: isolate を書くと、親の中で描いたものだけが混ぜる相手になり、親の外とは混ざりません。

このページのプレビューでは、箱の中の円(2 番目の子)に mix-blend-mode: multiply を書いています。isolate では、円は緑の四角と重なった所だけ暗くなり、四角の外では元の青のままです。auto にすると、箱の後ろの縞や赤い円とも混ざります。

ほかのプロパティでも切り離される

重なりのまとまり(スタッキングコンテキスト)を作る要素は、isolation が auto のままでも切り離されます。たとえば opacity が 1 未満の要素、transform や filter が none 以外の要素、position と z-index を両方指定した要素などです。isolation: isolate は、見た目をほかに変えずに、このまとまりだけを作りたいときに使います。

気をつけること

  • isolate は新しいスタッキングコンテキストも作るので、中の z-index の重なり順は親の中で閉じます。z-index: -1 の子が親の背景の後ろに隠れないようにする、という使い方もできます。
  • 背景の層どうしを混ぜる background-blend-mode は、もともと要素の中だけで混ざるので、isolation は関係ありません。
  • このページのプレビューでは、後ろの模様が見えるように箱の地を透明(background-color: transparent)にしています。点線の枠が箱の範囲です。

コメント