2022.09.29

HTML・CSS

positionプロパティとz-indexプロパティによる重なり

positionプロパティとz-indexプロパティによる重なりを確認します。
デモページはこちら

以下のhtml構造で確認します。クラス名div-childのdivタグに、順番にオレンジ・緑・青の背景色をつけます。

<div class="div-parent">
<div class="div-child"></div>
<div class="div-child"></div>
<div class="div-child"></div>
</div>

CSSでposition、z-indexの指定がない場合、htmlの記述が後の要素が上に重なります。

緑のみposition: relativeを指定すると、緑の要素が一番上に重なります。これはabsoluteやfixedを指定した場合も同じで、positionを指定していない要素よりも重なりが1段階上になります。

緑にposition: relativeを指定したままで、青にtransform: translateX(20px)を指定すると青の要素が一番上に重なります。transformを指定した要素は、z-index: 0のスタックコンテキストのふるまいになるためです。

緑にposition: relativeを指定したままで、青にopacity: .8を指定した場合もtransformを指定した時と同様の表示になります。

最後に、緑にposition: relative、z-index: 10、青にtransform: translateX(20px)、opacity: .8を指定します。緑がスタックコンテキストになり、なおかつz-indexで0よりも大きい10を指定しているため、緑の要素が一番上に重なります。

「positionがrelativeかabsolute」で、なおかつ「z-indexが初期値のauto以外」の要素はスタックコンテキストを形成します。また「positionがfixedかsticky」の場合は、z-indexの指定がなくてもスタックコンテキストを形成します。

関連記事

2025.08.08

HTML・CSS

fit-contentのセンタリングを利用した横幅可変のグラデーション背景

width: fit-contentを利用してテキストをセンタリングし、グラデーションの背景を表示します。デモページはこちら 以下のhtml構造で確認します。d…

2020.07.18

HTML・CSS

CSSアニメーションで画像を横スクロール無限ループ

CSSアニメーションで画像を横スクロール無限ループさせます。まずhtmlのコードです。同じ画像を2つ配置して、クラス名loop_wrapのdivタグで囲います。…

2020.06.27

HTML・CSS

iOSのブラウザでセレクトボックスの文字を省略せずに表示

iOSのブラウザではセレクトボックスに長いテキストの選択肢がある場合、途中で省略して表示されます。省略記号「…」が付いて選択肢が最後まで読めません。これを全て表…

2024.08.16

HTML・CSS

flex-shrinkで文字の改行を防ぐ

flexボックスのレイアウトで、flexアイテムにflex-shrinkプロパティを指定してテキストが改行されるのを防ぎます。デモページはこちら 以下のhtml…

2022.05.11

HTML・CSS

CSSのcalc記述時の注意点

CSSのcalcはCSS3で追加された関数です。calc記述時は以下の点に注意が必要です。 加算・減算の演算子の左右には半角スペースが必要 乗算は掛けられる方(…

上に戻る