position
Position
静的(既定)
htmlに書き込まれたタグ順に位置を指定し、順番に表示します.
場所を指定しない場合、デフォルトは
position: static
です.<div class="box box1">box1</div>
<div class="box box2">box2</div>
.box{
color:white;
width: 100px;
height: 100px;
}
.box1{
background-color: green;
}
.box2{
position:static;
background-color: red;
}
relative
static 자리를 기준
で指定された場所に移動します.box 2の静的位置は上が静的参照
静止位置を基準として、頂部から10下がり、左側から40下がります.
<div class="box box1">box1</div>
<div class="box box2">box2</div>
.box{
color:white;
width: 100px;
height: 100px;
}
.box1{
background-color: green;
}
.box2{
position: relative;
background-color: red;
left: 40px;
top: 10px;
}
absolute
祖先要素のデフォルトの位置:静的以外の祖先に最も近い位置に移動します.
すべての祖先要素がposition:staticである場合、それらは自分の箱に基づいて指定された位置を移動します.
box 1-child-schildは、位置が静的ではなく、最近の祖先がbox 1であるため、box 1(緑を基準に左から100 pxに下がる)を表す.
box 2−schildは、box 2−schildのbox 2−schildタグに基づいて移動する.なぜなら、すべての祖先要素の位置は静的であるからである.
<div class="box box1">
<div class="box box1-child">
<div class="box box1-child-child">box1-child-chlid</div>
</div>
</div>
<div class="box box2">
<div class="box box2-child">box2-child</div>
</div>
.box{
color:white;
width: 100px;
height: 100px;
}
.box1{
position: relative;
background-color: green;
}
.box1-child-child {
position: absolute;
left: 100px;
background-color: violet;
}
.box2{
background-color: red;
}
.box2-child {
position: absolute;
right: 0;
background-color:black;
}
fixed
ビューポートを固定し、ビューポートをスクロールし続けます.ビューポートはデータムなので、常にその位置を維持します.
box 2の長さは自分の両親boxの1000 px(青に準じて)を超えているが、常に左20 px、上50 pxの位置に保たれている.
<div class="wrap">
<div class="box box1">box1</div>
<div class="box2-wrap">
<div class="box box2">box2</div>
</div>
<div class="box box3"></div>
</div>
.wrap {
height: 2000px;
}
.box{
color:white;
width: 100px;
height: 100px;
}
.box1{
background-color: red;
}
.box2-wrap {
height: 1000px;
}
.box2{
position: fixed;
left: 20px;
top: 50px;
background-color: green;
}
.box3{
top: 1000px;
background-color: cadetblue;
}
sticky
親箱を基準に固定し、親箱の位置まで転がして同じ位置を保ち、親箱をひっくり返すと消えてしまいます.
box 2は自分の親箱の長さ1000 px(青基準)を超えるまで位置が固定されており、降りるときに親箱をひっくり返すと消えてしまいます.
<div class="wrap">
<div class="box box1">box1</div>
<div class="box2-wrap">
<div class="box box2">box2</div>
</div>
<div class="box box3"></div>
</div>
.wrap {
height: 2000px;
}
.box{
color:white;
width: 100px;
height: 100px;
}
.box1{
background-color: red;
}
.box2-wrap {
height: 1000px;
}
.box2{
position: sticky;
left: 20px;
top: 50px;
background-color: green;
}
.box3{
top: 1000px;
background-color: cadetblue;
}
Reference
この問題について(position), 我々は、より多くの情報をここで見つけました https://velog.io/@sjkim_jinnyk/CSS-positionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol