- ベストアンサー
positionについての認識と使い方
- positionプロパティを使った要素の配置方法について説明します。relativeは要素自体にpositionプロパティを指定し、親要素には指定する必要はありません。absoluteは要素をブラウザ上の絶対的な位置に配置することができますが、親要素にpositionプロパティの値が指定されている場合は親要素を基準に配置されます。
- relativeを使う場合は親要素からの相対的な位置を指定して要素を配置します。ただし、relativeは個別の要素に対して指定するため、まとめて指定する方法はありません。
- absoluteを使う場合はブラウザ上の絶対的な位置を指定して要素を配置します。親要素にpositionプロパティが指定されていない場合はウィンドウ全体を基準に配置されますが、親要素にpositionプロパティが指定されている場合は親要素を基準に配置されます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>> >> >> relativeの基準位置は親要素は関係なく、「元々居た位置」です。 >> >> もともといた位置とは、その要素を配置した位置ということですか? そういう事ですね。 static(無指定)の場合と同じ位置、そこが基準点です。 relativeを指定して、left(right)とtop(bottom)が無指定なら配置場所はstaticと同じです。 relativeを指定して、leftやtopに数値(と単位)を入力すれば、staticの位置を基準として入力した数値分動く事になります。
その他の回答 (1)
- tkmojo
- ベストアンサー率50% (105/207)
なんか全然違うと思います。 > ・absoluteは、親要素も何も関係なしにブラウザ上の上から何PX左から何PXと指定して、要素を配置でできる。 > ただし例外として、 親ボックスにpositionプロパティのstatic以外の値が指定されている場合には、親ボックスの左上が基準位置となります。 > 親ボックスにpositionプロパティのstatic(初期値)以外の値が指定されていない場合には、ウィンドウ全体の左上が基準位置となります。(> 個人的に単独で使う事はほぼないです) これはあってます。 > ・relativeは、親要素から、何PX左から何PXと指定して、要素を配置でできる これは違います。 relativeの基準位置は親要素は関係なく、「元々居た位置」です。 { position: relative; top:100px; left:10px } これだと、static(position無指定)の状態で居る位置から下に100px、右に10px移動したことになります。 ただ、margin等の移動と違って他のものはそれに伴って動くわけではないので、relativeのものを下に100pxも動かしてしまうと、その下にあるものとかぶってしまいます。 ですので、ほとんどの場合はrelativeはabsoluteの親ボックスに指定するだけに使い、leftやtopは入力しません。 (その他z-indexを入力したい時や、ブラウザのバグ回避などで指定する事もあります。) relativeのものを動かしたいときは、margin等の方が向いてます。 leftやtopで自由に配置したいものはabsoluteで行いましょう。
お礼
半分はあっていますが? >> relativeの基準位置は親要素は関係なく、「元々居た位置」です。 もともといた位置とは、その要素を配置した位置ということですか?
お礼
ありがとうございます。 もう一度よくまとめています。