目次
- 【完全保存版】CSS positionの使い方まとめ|relative・absolute・fixed・stickyを初心者向けに徹底解説
- CSS positionとは何か
- positionの種類一覧
- position: static(初期状態)
- 特徴
- position: relative(相対配置)
- 特徴
- よくある使い方
- position: absolute(絶対配置)
- 特徴
- 正しい使い方(重要)
- position: fixed(画面固定)
- 特徴
- よくある使用例
- position: sticky(スクロール追従)
- 特徴
- 注意点
- top / right / bottom / left の使い方
- ポイント
- positionでよくある失敗例
- absoluteを使ったら要素が消えた
- fixedを使ったら下の要素が隠れた
- positionとz-indexの関係
- 注意点
- positionはいつ使うべきか
- 初心者におすすめの考え方
- よくある質問
- relativeとabsoluteは必ずセットですか
- stickyが効かないのはなぜですか
- まとめ
【完全保存版】CSS positionの使い方まとめ|relative・absolute・fixed・stickyを初心者向けに徹底解説
CSSを学び始めると、必ず出てくるのが position というプロパティです。
- positionを指定したらレイアウトが崩れた
- absoluteを使ったら要素がどこかへ消えた
- relativeとabsoluteの違いが分からない
この記事では、「css position」で検索した初心者の方に向けて、
positionの基本概念から、各値の違い、実務での正しい使い方までを
順を追って分かりやすく解説します。
CSS positionとは何か
CSSの position は、
要素をどの基準で、どのように配置するかを決めるプロパティです。
positionを使うことで、次のようなことが可能になります。
- 要素を好きな位置に移動する
- 画面に固定表示する
- 親要素を基準に配置する
- スクロールに応じて動かす
まずは、positionの種類を押さえましょう。
positionの種類一覧
CSS positionには、主に次の5種類があります。
| 値 | 役割 |
|---|---|
| static | 初期値(何もしない) |
| relative | 自分自身を基準に移動 |
| absolute | 親要素を基準に配置 |
| fixed | 画面を基準に固定 |
| sticky | スクロールに応じて固定 |
この違いを理解することが、position攻略の鍵です。
position: static(初期状態)
.box {
position: static;
}
特徴
- すべての要素の初期値
- top / left などは効かない
- 通常のHTMLの流れ通りに配置される
基本的に、
意識して使うことはほぼありません。
position: relative(相対配置)
.box {
position: relative;
top: 10px;
left: 20px;
}
特徴
- 元の位置を基準に移動する
- 移動しても「元の場所」は保持される
- absoluteの基準として使われる
よくある使い方
- absolute要素の基準作り
- 少しだけ位置をずらしたい場合
position: absolute(絶対配置)
.child {
position: absolute;
top: 0;
right: 0;
}
特徴
- 親要素を基準に配置される
- 親に position が指定されていない場合は、画面全体が基準になる
- 通常のレイアウトの流れから外れる
正しい使い方(重要)
.parent {
position: relative;
}
.child {
position: absolute;
top: 0;
left: 0;
}
absoluteを使うときは、親にrelativeを指定する
これが最重要ルールです。
position: fixed(画面固定)
.header {
position: fixed;
top: 0;
left: 0;
}
特徴
- 画面(viewport)を基準に固定
- スクロールしても位置が変わらない
よくある使用例
- ヘッダー固定
- フローティングボタン
- ページトップへ戻るボタン
position: sticky(スクロール追従)
.menu {
position: sticky;
top: 0;
}
特徴
- 通常はrelativeのように動く
- 指定位置に来るとfixedのように固定される
注意点
- 親要素の高さが必要
- overflow: hidden があると効かない場合がある
top / right / bottom / left の使い方
positionとセットで使うのが、位置指定プロパティです。
.box {
position: relative;
top: 20px;
left: 10px;
}
ポイント
- positionを指定しないと効かない
- 数値はpx / % / rem などが使える
positionでよくある失敗例
absoluteを使ったら要素が消えた
原因:
- 親要素に position が指定されていない
解決策:
.parent {
position: relative;
}
fixedを使ったら下の要素が隠れた
.header {
position: fixed;
height: 60px;
}
解決策:
body {
padding-top: 60px;
}
positionとz-indexの関係
positionを使うと、
重なり順(z-index) が関係してきます。
.box {
position: relative;
z-index: 10;
}
注意点
- z-indexはposition指定が必要
- 数字が大きいほど前に表示される
positionはいつ使うべきか
次のような場合にpositionが適しています。
- 親要素の中で自由に配置したい
- 画面に固定したUIを作りたい
- 装飾的な要素を重ねたい
一方で、
通常のレイアウトにはFlexboxやGridを使う方が安全です。
初心者におすすめの考え方
- レイアウト → Flexbox / Grid
- 位置調整・装飾 → position
この役割分担を意識すると、
レイアウト崩れが激減します。
よくある質問
relativeとabsoluteは必ずセットですか
absoluteを使う場合、
ほとんどのケースで親にrelativeを指定します。
stickyが効かないのはなぜですか
- 親に高さがない
- overflowが指定されている
この2点を確認してください。
まとめ
CSS positionは、
理解すれば非常に強力な配置手段です。
- relative:基準作り
- absolute:親基準の自由配置
- fixed:画面固定
- sticky:スクロール追従
「css position」で検索した方は、
まず relativeとabsoluteの関係 をしっかり理解することから始めてください。
positionを正しく使えるようになると、CSSレイアウトの幅が一気に広がります。