[CS]z-indexとスタックコンテキスト
Goal
z-indexの使用
要素の積み重ね順を変えるには,2つの条件が必要である.
次の例では、位置属性が適用されないエンティティが
기본 렌더링 레이어 (Layoer 0)
にあるのではなく、位置属性が指定されたエンティティ間でz−indexによってスタック順序が決定されることが分かる.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<main class="container">
<div>
<p>div 1. position:absolute</p>
<p>z-index:5</p>
</div>
<div>
<p>div 2. position:relative</p>
<p>z-index:2</p>
</div>
<div>
<p>div 3. not positioned</p>
<p>z-index:8</p>
</div>
<div>
<p>div 3. position:absolute</p>
<p>z-index:-1</p>
</div>
</main>
</body>
</html>
main {
position: relative;
width: 500px;
height: 500px;
text-align: right;
}
div {
padding: 5px;
margin: 5px;
}
div:nth-child(1) {
position: absolute;
width: 150px;
height: 500px;
left: 40px;
background-color: rgba(255, 204, 204);
z-index: 5;
}
div:nth-child(2) {
position: relative;
width: 500px;
height: 150px;
background-color: rgba(255, 255, 0);
z-index: 2;
}
div:nth-child(3) {
width: 500px;
height: 150px;
background-color: rgba(0, 255, 0);
z-index: 8;
}
div:nth-child(4) {
position: absolute;
width: 150px;
height: 500px;
top: 0;
left: 250px;
background-color: red;
z-index: -1;
}
z-indexなし
모든 엘리먼트에 z-index 설정이 없을 경우
、または여러 엘리먼트들이 같은 z-index를 가질 경우
、装飾は以下の順序で下から上へ積み上げられる.同じ順序であれば、HTMLソースに書き込まれた順序で順序を決めます.
まず、最初のdivはposition属性が指定されていないblock levelセグメントであり、2番目と3番目のdivはposition属性が相対的に指定されている.
上記の手順から元素の堆積がわかります.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div>
div 1 . not positioned
</div>
<div>
div 2 . relative positioned
</div>
<div>
div 3 . relative positioned
</div>
</body>
</html>
div {
border: 1px solid black;
}
div:nth-child(1) {
width: 400px;
height: 400px;
background-color: rgba(255, 204, 204);
}
div:nth-child(2) {
position: relative;
width: 250px;
height: 250px;
top: -300px;
left: 50px;
background-color: rgba(255, 255, 0);
}
div:nth-child(3) {
position: relative;
width: 150px;
height: 150px;
top: -500px;
left: 70px;
background-color: rgba(0, 255, 0);
}
最終要素の積み上げ順序
HTMLソースに位置を設定する要素とz-indexを設定しない要素、およびz-indexを設定しない要素がある場合、最終セグメントのスタック順序は次のとおりです.同じ順序であれば、HTMLソースに書き込まれた順序で順序を決めます.
スタックコンテキスト
スタック脈絡は,仮想Z軸を用いたHTML要素の3次元概念化である.
上記のように、特定の要素のレンダリング順序は、z-index属性値によって決まります.これは、これらの要素が有する属性が
쌓임 맥락
を生成するためである.堆積脈は以下の条件を満たすときに生成される.
脈絡内部のサブ要素の特徴を蓄積する
スタック脈絡を生成する要素のサブ要素は、スタック脈絡生成規則とz-index規則と同様にスタックされる.
蓄積された脈絡の内部には、蓄積された脈絡も含まれる可能性がある.したがって、蓄積された脈絡は
계층 구조
である.부분집합
である.サブエレメントのz-index値は、親エレメント内でのみ意味があります.
自分の蓄積脈絡を作らなければ、親の蓄積脈絡に同化される.
Reference
Reference
この問題について([CS]z-indexとスタックコンテキスト), 我々は、より多くの情報をここで見つけました https://velog.io/@moonheekim0118/CSSz-index와-쌓임-맥락-stacking-contextテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol