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の指定がなくてもスタックコンテキストを形成します。

関連記事

2022.08.30

HTML・CSS

linear-gradientを利用した文字の下線

background-imageプロパティのlinear-gradientを利用して複数行の文字に下線を引きます。複数行に対応させるため、inline要素に適用…

2024.09.09

HTML・CSS

border-radiusプロパティを利用した要素サイズいっぱいの角丸

border-radiusプロパティを利用して、要素サイズいっぱいの角丸を作成します。デモページはこちら まず正方形にborder-radius: 50%を指定…

2022.07.17

HTML・CSS

Google Fontsの読み込みをDNSプリフェッチで最適化

DNSプリフェッチを利用すると、外部ドメイン名(ホスト名)の名前解決(DNSルックアップ)を事前に強制できます。 WEBページ表示時ブラウザが外部ドメインにアク…

2020.07.18

HTML・CSS

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

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

2020.10.03

HTML・CSS

WAI-ARIAのaria-current属性で現在位置を指定

デモページはこちら ナビゲーションメニューにWAI-ARIAのaria-current属性で現在位置を指定します。jQueryでページのURLを判別し、対象のa…

上に戻る