isolation:要素のスタッキング・コンテキストを制御する
初期値 | auto |
適用対象 | 全ての要素 |
継承 | しない |
アニメーション | 離散値 |
対応ブラウザ | caniuseで確認 |
isolationプロパティの説明
isolation
は、要素のスタッキング・コンテキストを制御します。スタッキング・コンテキストとは、要素が重なり合った時の仮想的な奥行きを表す概念です。
例えば、背景色を持つボックスが重なった時に透過やブレンドが指定されていた場合に、コンテキストを維持するのか分離するのかを選択できます。
isolationに指定できる値
- auto
- 既存のスタッキング・コンテキストを尊重します。
- isolate
- 新しいスタッキング・コンテキストを作成します。
isolationの使い方とサンプル
isolation
プロパティの構文は以下の通りです。
CSS
/* キーワード値 */
isolation: auto;
isolation: isolate;
/* グローバル値 */
isolation: inherit;
isolation: initial;
isolation: revert;
isolation: unset;
isolationの実例
それでは実際にisolation
プロパティの書き方を見ていきましょう。以下の例では、mix-blend-mode
を使用して重なった要素の色調を混合しています。その重なり具合いをisolation
で変更したものを比較します。
表示確認
CSS
.samp_box {
overflow: auto;
padding: 1rem;
background: #eee;
text-align: center;
display: grid;
grid-template: 1fr / 1fr 1fr;
}
.samp_box > div {
position: relative;
border: 10px solid #09f;
background-color: #f00;
width: 50%;
height: 240px;
}
div > h2 {
position: absolute;
top: -20px;
left: -10px;
padding: 0 .3rem;
background-color: #09f;
color: #fff;
font-size: 1rem;
}
div > div {
position: absolute;
width: 100%;
height: 60px;
left: 70px;
mix-blend-mode: difference;
}
#item1 {
top: 10px;
background-color: #ff6600;
}
#item2 {
top: 80px;
background-color: #0066ff;
}
#item3 {
top: 150px;
background-color: #ff0066;
}
.iso_auto {
isolation: auto;
}
.iso_iso {
isolation: isolate;
}
HTML
<section class="samp_box">
<div class="iso_auto">
<h2>auto</h2>
<div id="item1">#ff6600</div>
<div id="item2">#0066ff</div>
<div id="item3">#ff0066</div>
</div>
<div class="iso_iso">
<h2>isolate</h2>
<div id="item1">#ff6600</div>
<div id="item2">#0066ff</div>
<div id="item3">#ff0066</div>
</div>
</section>
isolationに関連するCSSプロパティ
要素の装飾や描画指定 | |
---|---|
accent-color | 一部の要素の強調色を指定する |
all | 要素の全てのプロパティを初期化する |
appearance | ブラウザが独自に描画する標準的なUIをCSSで変更できるようにする |
caret-color | テキストの挿入位置や選択補助として表示されるキャレットの色を指定する |
cursor | マウスポインタのカーソルの種類を指定する |
filter | 画像やテキストにフィルタ効果を与える |
isolation | 要素のスタッキング・コンテキストを制御する |
mix-blend-mode | 重なり合った要素の内容と背景に対して描画モードを指定する |
opacity | 要素の不透明度を指定する |
scroll-behavior | スクロールが発生した場合の挙動を指定する |
user-select | ユーザーがテキストを選択できるかどうかを指定する |