いずれかは私に違い伝えることができますstyle = "position:absolute"
し、style = "position:relative"
そしてそれらがどのようにケースが異なる私はそれを追加div
/ span
/ input
要素を?
absolute
今使っていますが、調べrelative
てみたいです。これはどのようにポジショニングを変更しますか?
いずれかは私に違い伝えることができますstyle = "position:absolute"
し、style = "position:relative"
そしてそれらがどのようにケースが異なる私はそれを追加div
/ span
/ input
要素を?
absolute
今使っていますが、調べrelative
てみたいです。これはどのようにポジショニングを変更しますか?
回答:
絶対配置とは、要素がページレイアウトの通常のフローから完全に外れることを意味します。ページ上の残りの要素に関する限り、絶対的に配置された要素は単に存在しません。要素自体は、left, right, top and bottom
属性を使用して指定した位置に、他のものの「上」のように個別に描画されます。
これらの属性で指定した位置を使用して、要素は最後の祖先要素内のその位置に配置されます。これは、position属性がstatic
(position属性が指定されていない場合、ページ要素はデフォルトでstatic)またはドキュメント本体(ブラウザ)以外です。ビューポート)そのような祖先が存在しない場合。
たとえば、次のコードがある場合:
<body>
<div style="position:absolute; left: 20px; top: 20px;"></div>
</body>
... <div>
ブラウザのビューポートの上から20ピクセル、左端から20ピクセルの位置に配置されます。
しかし、私がこのようなことをした場合:
<div id="outer" style="position:relative">
<div id="inner" style="position:absolute; left: 20px; top: 20px;"></div>
</div>
... inner
divは、divの上部から20 outer
ピクセル、左端から20ピクセルにouter
配置position:static
されますposition:relative
。これは、を使用するように明示的に設定したため、divが一緒に配置されていないためです。
一方、相対配置は、配置をまったく指定しないのと同じですが、left, right, top and bottom
属性によって要素が通常のレイアウトから「外れます」。ページ上の残りの要素は、要素が通常の場所にあるかのようにレイアウトされます。
たとえば、次のコードがある場合:
<span>Span1</span>
<span>Span2</span>
<span>Span3</span>
... 3つの<span>
要素すべてが重なり合うことなく隣り合って配置されます。
次の<span>
ように、相対配置を使用するように2番目を設定すると、
<span>Span1</span>
<span style="position: relative; left: -5px;">Span2</span>
<span>Span3</span>
...次にSpan2はSpan1の右側を5pxオーバーラップします。Span1とSpan3は、最初の例とまったく同じ場所に配置され、Span2の右側とSpan3の左側の間に5pxのギャップが残ります。
少しわかりやすくなることを願っています。
あなたは間違いなく「A List Apart」からこのポジショニングの記事をチェックしたいと思うでしょう。CSSの位置付けをわかりやすくするのに役立ちました(この記事の前は、私には気が狂っていました)。
CSSの配置により、要素をページ上の必要な場所に正確に配置できます。
CSS配置を使用する場合、最初に行う必要があるのは、CSSプロパティの位置を使用して、絶対配置と相対配置のどちらを使用するかをブラウザーに通知することです。
両方のポジションに異なる機能があります。CSSでは、位置を設定すると、上、右、下、左の属性を使用できるようになります。
絶対位置
絶対位置要素は、静的以外の位置を持つ最初の親要素に対して相対的に配置されます。
相対位置
相対的に配置された要素は、その通常の位置に対して相対的に配置されます。
要素を相対的に配置するには、プロパティの位置を相対的に設定します。絶対配置と相対配置の違いは、位置の計算方法です。
詳細:位置相対vs絶対
わかりました、ここで非常に明白な答え...基本的に、相対的な位置は前の要素またはウィンドウに対する相対的ですが、上と左を使用する場合、それが親でない限り、絶対的に他の要素を気にしないでください...
私が作成した例を見て、違いを示してください...
また、私が作成したcssを使用して、実際の位置と相対位置の動作を確認できます。
.parent {
display: inline-block;
width: 180px;
height: 160px;
border: 1px solid black;
}
.black {
position: relative;
width: 100px;
height: 30px;
margin: 5px;
border: 1px solid black;
}
.red {
width: 100px;
height: 30px;
margin: 5px;
top: 16px;
background: red;
border: 1px solid red;
}
.red-1 {
position: relative;
}
.red-2 {
position: absolute;
}
<div class="parent">
<div class="black">
</div>
<div class="red red-1">
</div>
</div>
<div class="parent">
<div class="black">
</div>
<div class="red red-2">
</div>
</div>
相対的:
の要素position: relative;
は、通常の位置を基準にして配置されます。
相対要素に配置属性(上、左、下、または右)を追加しない場合、その配置にはまったく影響しません。position: static
要素として正確に動作します。
ただし、たとえばtop:10px;などの他の配置属性を追加すると、通常の位置から10ピクセル下に位置が移動します。
このタイプの配置の要素は他の要素の影響を受け、それ自体も他の要素に影響します。
絶対の:
の要素をposition: absolute;
使用すると、任意の要素を希望する場所に正確に配置できます。配置属性は、上、左、下を使用します。場所を設定する権利。
これは、最も近い非静的な祖先を基準にして配置されます。そのようなコンテナがない場合は、ページ自体に対して相対的に配置されます。
ページ上の要素の通常のフローから削除されます。
このタイプの配置の要素は、他の要素の影響を受けず、他の要素のフローにも影響しません。
よりわかりやすくするには、この自明の例を参照してください。https://codepen.io/nyctophiliac/pen/BJMqjX
position: absolute
0,0のように、どこにでも置くことができます。
position: relative
最初にブラウザに配置された場所からのオフセットで配置されます。