CSSのpositionとは?positionを使った自由な位置の指定方法を解説!

CSSのpositionとは?
CSSのpositionとは、要素の位置を指定できるCSSプロパティです。
positionをマスターするとWebページのデザインの幅がさらに広がります。


CSSのpositionでできること
positionのコードはこんな感じ
CSSでposition: (位置の種類);を指定し、topまたはbottom: (縦の位置の値)・leftまたはright: (横の位置の値)で位置を定義します。
【 position: absolute の例】
ブラウザで実行するとこんな感じ

position位置決めプロパティtop/bottom/left/rightとは?
position位置決めプロパティtop/bottom/left/rightはそれぞれ以下の通りです。
top |
基準において上から何サイズの位置かを指定できます。 ![]() |
---|---|
bottom |
基準において下から何サイズの位置かを指定できます。 ![]() |
left |
基準において左から何サイズの位置かを指定できます。 ![]() |
right |
基準において右から何サイズの位置かを指定できます。 ![]() |
基準はpositionプロパティの値によって異なります。
各値の基準については次章で詳しく解説します。
positionプロパティの使い方
position: absolute
absoluteは、基準に対してtop/bottom/left/rightで指定した位置に固定できます。
【基準】
- position: relative/absolute/fixedを指定した要素、かつ、自身を内包する要素で1番近い要素。
- 指定がない場合は、Webページの左上が基準。

【 position: absolute の例】
ブラウザで実行するとこんな感じ

relative要素に内包されたabsolute要素は、基準がrelative要素になり、
親要素に何もないabsolute要素は基準が画面左上になりましたね!
※relativeについては次節で説明します。
position: relative
relativeは自身が基準と定義します。
自身が内包するposition: absoluteもしくはstickyの要素に対する基準として使われます。
【基準】
- 自身が基準。

【 position: relative の例】
ブラウザで実行するとこんな感じ

relativeを基準に、absolute要素の位置が反映されています。
position: fixed
fixedは、基準に対してtop/bottom/left/rightで指定した位置に固定できます。
また、スクロールしても表示位置は常に固定されます。
【基準】
- Webページの左上が基準。

【 position: fixed の例】
ブラウザで実行するとこんな感じです。
実際にスクロールしてみてください!
スクロールをしても常に「top: 50px」・「left: 80px」の位置に表示されています。
position: sticky
stickyは、基準に対してtop/bottom/left/rightで指定した位置に固定できます。
sticky要素が存在する位置までスクロールした際、指定した位置に固定でスクロールに追従します。
【基準】
- スクロールが発生する要素、かつ、自身を内包する要素で1番近い要素が基準。

【 position: sticky の例】
ブラウザで実行するとこんな感じ
実際にスクロールしてみてください!
sticky要素がある位置までスクロールすると、「top:50px」の位置で追従してきました。
position: static (デフォルト)
staticはtop/bottom/left/rightで指定した位置やその他関係プロパティが一切効かない要素。
デフォルトの要素の状態です。

【 position: static の例】
ブラウザで実行するとこんな感じ

top/leftが一切効いていません。
その他position指定によく使うプロパティ/テクニック
z-indexプロパティ
z-indexプロパティはposition要素同士の重なり順を指定できます。
また、値は整数を設定し、大きいほど前面へ表示されます。
デフォルトは"auto"で親要素と同じレベルとなります。
〜 デフォルト"auto"の表示 〜

【 z-indexを指定したサンプルコード 】
ブラウザで実行するとこんな感じ

z-indexの値が大きいほど前面へ表示されました。
absolute/fixedで全方向の中央寄せ
absolute/fixedを指定した要素を垂直・水平方向に中央寄せができます。
ブラウザで実行するとこんな感じ

左右・上下どちらも中央の位置となりました。
flexボックスでも全方向中央寄せができます。
ただ画面全体に対して中央に寄せたい場合、高さheightの指定に手間取りやすいです。

【 flexについて詳しく 】
CSSのflexとは?Web画面必須なflexの基本的な使い方を詳しく解説!|こじはなNoteabsolute/fixedで左右・水平方向のみ中央寄せ
absolute/fixedを指定した要素を左右・水平方向に中央寄せができます。
ブラウザで実行するとこんな感じ

左右のみ中央の位置となりました。
flexボックスでも左右の中央寄せができます。

【 flexについて詳しく 】
CSSのflexとは?Web画面必須なflexの基本的な使い方を詳しく解説!|こじはなNoteabsolute/fixedで上下・垂直方向のみ中央寄せ
absolute/fixedを指定した要素を上下・垂直方向に中央寄せができます。
ブラウザで実行するとこんな感じ

上下のみ中央の位置となりました。
flexボックスでも上下の中央寄せができます。
ただ画面全体に対して中央に寄せたい場合、高さheightの指定に手間取りやすいです。

【 flexについて詳しく 】
CSSのflexとは?Web画面必須なflexの基本的な使い方を詳しく解説!|こじはなNote