CSS: CSSポジショニング

最終更新:2026-10-13

CSSのポジショニングは強力なレイアウトツールで、ページ上の要素の配置を細かく制御できます。

positionプロパティ早見表

値 動作 基準点 よく使うケース
static 通常フロー(デフォルト) — デフォルトの動作
relative 通常位置からのオフセット 自身の元の位置 微調整、配置コンテキスト
absolute フローから除外 最近の配置された祖先 バッジ、オーバーレイ
fixed ビューポートに固定 ビューポート 固定ヘッダー、トップに戻る
sticky ハイブリッド スクロールコンテナ + ビューポート 固定ヘッダー

この節のプロパティ: top bottom left right z-index opacity

1. position: relative

通常位置からのオフセットで、ドキュメントフローから除外されません:

▶ サンプル

▶ 試してみよう

よく使うケース:


2. position: absolute

フローから除外され、最近の配置された祖先に対して相対的に配置:

▶ サンプル

▶ 試してみよう

重要: 配置された祖先が存在しない場合、absoluteはビューポートに対して相対的に配置されます。


3. position: fixed

ビューポートに固定され、ページと一緒にスクロールしません:

▶ サンプル

▶ 試してみよう

よく使うケース:


4. position: sticky

relativeとfixedのハイブリッド——通常はスクロールし、しきい値で「固定」されます:

▶ サンプル

▶ 試してみよう

使用上の注意:


5. z-index(重なり順)

要素が重なる場合、z-indexがどちらが上に表示されるかを制御:

▶ サンプル

▶ 試してみよう

注意: z-indexは配置された要素(static以外)でのみ機能します。

(1) スタッキングコンテキスト

z-indexは同じ「スタッキングコンテキスト」内で比較されます。各配置された要素はスタッキングコンテキストを作成し、子のz-indexは親のコンテキスト内でのみ比較されます。


この節のプロパティ: top bottom left right z-index opacity

❓ よくある質問

Q position: relativeはいつ使いますか?
A 最も一般的には、absoluteの子要素の配置基準として使用されます。親にposition: relativeを追加すると(オフセットなし)、position: absoluteの子要素はその親に対して相対的に配置されます。親にrelativeがない場合、absoluteはページ全体に対して相対的に配置されます。
Q fixedポジショニングはモバイルでうまく機能しませんか?
A fixedはモバイルSafariで一貫性のない動作をします。特にキーボードのポップアップやページスクロール時に顕著です。一部のシナリオではposition: stickyを代替として使用するか、JavaScriptでモバイルを検出して特別に処理します。
Q z-indexを高く設定してもまだブロックされますか?
A z-indexは同じスタッキングコンテキスト内でのみ機能します。親にz-indexがある場合、子のz-indexはその親のコンテキスト内でのみ比較されます——親の境界を越えることはありません。親のz-indexが低いか、opacityなど新しいスタッキングコンテキストを作成するプロパティがないか確認してください。

📖 まとめ

📝 練習問題

  1. position: absoluteを使用して、右上隅に「HOT」バッジを持つ「商品カード」を作成してください。
  2. position: fixedを使用して、固定の下部ナビゲーションバーまたは著作権表示を作成してください。
  3. 「スティッキー見出し」を作成してください——スクロール時に次のタイトルが押し出すまで上部に固定されるセクションタイトル。
  4. 子要素の絶対中央揃えを実装してください(absolute + top/left + transformを使用)。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%