CSSのZ-Index属性:ページ要素の順序を制御するための強力なツールスタッキング
この記事では、Page要素のカスケード順序を制御するために使用されるCSSの
属性を調査します。値が高い要素は、値が低い要素に表示されます。これは、それぞれ要素の水平位置と垂直位置を制御するページ上のx軸とy軸に類似しており、はz軸上の要素の積み重ね順序を制御します。 z-index
z-index
キーポイント:
の属性は、ページ要素のスタッキング順序を制御します。属性の値が
z-index
である要素でのみ機能します。 position
absolute
relative
をfixed
、position: relative
、またはtop
属性に割り当てることなく、元の位置を変更せずに要素のスタッキング順序を制御できます。ページ。 right
bottom
left
値の解析は、親のスタッキングコンテキスト内で実行されます。つまり、要素のz-index
z-index
組織と柔軟性を向上させるには、100の増分を使用してz-index
値を設定することをお勧めします。このアプローチは、2つの既存のレイヤーの間に新しいレイヤーを追加するときに、99の利用可能な数値選択を提供します。 z-index
デフォルトのスタッキング順序このHTMLスニペットでは、すべての要素がオーバーラップするように設定されている場合、フッターはボディコンテンツの上に積み重ねられ、ヘッダーの上部に積み重ねられます。
要素は、
<header class="site-header"></header> <main class="site-content"></main> <footer class="site-footer"></footer>
、
、、position
、top
>オフセット属性を組み合わせることで重複する可能性があります。 right
bottom
各要素のleft
属性が
position
absolute
オフセットプロパティを使用して
.site-header, .site-content, .site-footer { position: absolute; width: 400px; padding: 20px; } .site-header {top: 0; left: 0;} .site-content {top: 50px; left: 50px;} .site-footer {top: 100px; left: 100px;}
top
スタックコンテキストleft
を使用して重複する要素を作成できますが、これはいわゆる
スタッキングコンテキストを作成しません。
position: absolute
スタッキングコンテキストは、次の方法で作成できます。
要素には
属性があり、
値はposition: absolute
FlexBoxアイテムには、relative
ではない値があります。 z-index
auto
要素の不透明度(auto
要素のz-index
属性は、非opacity
前の例に戻ると、3つの要素が互いに重なり合っていますが、現時点ではz-index
値はありません。
z-index
属性を使用すると、スタッキング順序を制御できます。
フッターを1に設定すると、ボディz-index
から2、およびヘッダーz-index
から3を設定すると、デフォルトのスタッキング順序を完全に逆転させることができます。 z-index
表面では単純に思える:値が高いほど、要素が積み重ねる -
になります。残念ながら、現実はこれよりも複雑です。 z-index
スタッキングコンテキストのz-index: 9999
z-indexz-index: 9
<header class="site-header"></header> <main class="site-content"></main> <footer class="site-footer"></footer>
site-content
.site-header, .site-content, .site-footer { position: absolute; width: 400px; padding: 20px; } .site-header {top: 0; left: 0;} .site-content {top: 50px; left: 50px;} .site-footer {top: 100px; left: 100px;}
z-index
z-index
を4に設定した場合(上記の
値はコード臭いですので、可能であれば避けてください。 z-index
z-index: 3
ピンク色のボックスの上にイエローボックスが配置されたという期待される結果を得られない理由は、z-index
の積み重ねのコンテキストで動作する方法です。
z-index
...(MDN例のHTMLおよびCSSコードは、記事が長すぎるため、ここでは省略されていますが、重要な説明の部分は保持されます)....
これらすべては、すべての
値が親のスタッキングコンテキスト内で解析されているという事実によって説明できます。親コンテナの値はフッターよりも高いため、
内のすべての位置決め要素はそのコンテキストで評価されます。
z-index
積み重ねられたコンテキスト内の要素の積み重ね順序を理解すると、ネストされた注文リストの子供と比較できます。 .site-content
z-index
これは次のように書くことができます:.site-content
ヘッダー:
件名:
z-index: 5
ボックス1:z-index: 4
ボックス2:z-index: 4.6
ボックス3:z-index: 4.1
z-index: 4.3
z-index: 2
z-indexは、要素の配置z-index
にのみ適しています
要素のスタッキング順序を制御する場合は、z-index
を使用できます。ただし、要素の値がposition
、absolute
、またはrelative
の場合にのみ有効になります。 fixed
z-index
要素を正確に配置することは、複雑なレイアウトや興味深いUIパターンを構築するのに最適ですが、ページ上の元の位置に要素を移動せずにスタッキング順序を制御することが望ましいことがよくあります。
これが当てはまる場合は、position
、
、position: relative
、またはtop
の価値を提供しないように設定できます。要素はページ上の元の位置のままで、ドキュメントのフローは中断されず、right
値が有効になります。 bottom
left
負のz-index値を使用できますz-index
値が増加し続けることを意味します。要素を別の要素の下に配置するには、より低い
値を持つ必要がありますが、これは負になる可能性があります。
z-index
これは、擬似要素を使用する場合に役立ち、親要素コンテンツの背後に配置したい場合があります。 z-index
スタッキングコンテキストの仕組みにより、または
値を設定する必要があります。
z-index戦略:before
:after
プロジェクトにz-index
を適用するときに使用した簡単な戦略を要約しましょう。
値の1桁の増分
を使用しましたが、2つの要素の間にとz-index
に設定された新しい要素を追加する場合はどうでしょうか?多くの値を変更する必要があります - おそらくコードベース全体で問題を引き起こす可能性があり、ウェブサイトの他の部分でCSSの休憩を引き起こす可能性があります。
z-index
z-index: 3
を扱うとき、このようなコードがよく表示されます。
z-index: 4
を添付した後にのみ悪化します)。そのような値を見ることは、通常、開発者がスタッキングのコンテキストを理解せず、一方のレイヤーを他の層の上に強制しようとしていることを示します。
9999、53、または12などの任意の数字を使用する代わりに、z-index
比率を体系化し、プロセスをより多くの順序にすることができます。開発者が強迫性障害を持っているという理由だけではありません。真剣に。
<header class="site-header"></header> <main class="site-content"></main> <footer class="site-footer"></footer>
の1桁の増分を使用しませんでしたが、100分の増加を使用しました。 !important
私はこれを行い、物事を整理し続け、プロジェクトで使用されている多くのレイヤーにも気付きました。もう1つの利点は、他の2つのレイヤーの間に新しいレイヤーを追加する必要がある場合、99の潜在値から選択できることです。 z-index
z-index
...(FAQの部分は、以前の出力により繰り返しであるため、ここでは省略されています)...
以上がCSSのZ-Indexのマスターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。