【CSS基礎】position: relative; とは?使い方とstaticとの違いをわかりやすく解説

position: relative; は、CSSレイアウトの中でも最もよく使われるプロパティのひとつです。
見た目はstatic(通常配置)とほとんど同じですが、実は「要素を動かせるようにするための土台」となる重要な設定です。

この記事では、position: relative; の意味と使い方、staticとの違い、absoluteとの関係まで、コード例を交えながらわかりやすく解説します。

positionプロパティの基本

まずは前提として、positionプロパティの役割をおさらいしておきましょう。

positionは、要素の位置の基準をどこにするかを決めるCSSプロパティです。
主な値は次のとおりです。

意味
static通常の文書の流れに従う(デフォルト)
relative自分の元の位置を基準に移動
absolute親または祖先のposition指定要素を基準に配置
fixedビューポート(画面)を基準に固定配置
stickyスクロールに応じて固定/通常位置を切り替え

今回は、この中でもrelative(相対配置)に焦点を当てて解説します。

position: relative; とは?

position: relative; は、要素を「元の位置」から相対的に動かすための指定です。
英語の “relative” は「相対的な」という意味で、
「もともとの位置を基準に少しだけずらす」イメージを持つと分かりやすいです。

例:relativeを指定した場合の動き

See the Pen Untitled by suguru (@suguru22) on CodePen.

結果:
ボックスは、本来の位置から「下へ30px」「右へ40px」ずれて表示されます。
ただし、ずれた後も元の位置のスペースはそのまま確保されます。

staticとの違い

一見似ていますが、relativestatic には明確な違いがあります。

プロパティ配置の基準top / left などの指定z-index
static通常フロー×(無効)×(無効)
relative自分の元の位置○(有効)○(有効)

つまり、

  • 見た目が同じでも、relativeを指定すると座標が使えるようになる
  • z-indexで重なり順の調整も可能になる

という点が大きな違いです。

例:staticとrelativeの比較

See the Pen Untitled by suguru (@suguru22) on CodePen.

結果:

  • static要素 は通常の位置に配置されます。
  • relative要素 は、そこから下に20px・右に30pxずれます。
    ただし、static要素 との間隔は変わらず、空白スペースは残ったままです。

relativeを使う理由

「見た目がほとんど変わらないのに、なんでrelativeを使うの?」
と思うかもしれません。
実は、relativeの真の強みは 「子要素の基準を作る」 ことにあります。

relativeは「absoluteの基準」になる

position: absolute; の要素は、
最初のposition指定を持つ祖先要素を基準に配置されます。

つまり、親要素に position: relative; を指定すると、
子要素をその中で自由に動かすことができるようになります。

See the Pen Untitled by suguru (@suguru22) on CodePen.

結果:
ピンクの子要素は、親要素(灰色ボックス)の中で
上から50px、左から50pxの位置に配置されます。

もし親にposition: relative;がなければ、
子要素は画面全体(body)を基準に配置されてしまいます。

relativeを使うときの注意点

① 元の位置のスペースは残る

relativeで移動しても、周囲のレイアウトには影響しません。
他の要素がそのスペースを詰めてくることはありません。

② 大きく動かす用途には不向き

relativeはちょっとした調整(数px〜数十px)に適しています。
大きく位置を変える場合は、absoluteflexboxgrid の利用を検討しましょう。

まとめ:relativeは“基準”を作る役割

状態意味
position: relative;要素を「元の位置」から相対的に動かせる
top, left などが有効になる
z-index が使えるようになる
子要素(absolute)の基準になれる

relativeは「少し動かす」「absoluteの基準を作る」といった、
CSSレイアウトの要になる設定です。

タイトルとURLをコピーしました