カテゴリ: CSS 更新日: 2026/07/07

CSSのtop・right・bottom・leftの使い方を完全解説!初心者でもわかる位置指定ルール

top・right・bottom・left の位置指定と動作ルール
top・right・bottom・left の位置指定と動作ルール

先生と生徒の会話形式で理解しよう

生徒

「先生、CSSで要素を上下左右に動かすにはどうすればいいですか?」

先生

「CSSでは、positionプロパティと組み合わせてtop、right、bottom、leftを使うことで、要素の位置を自由に調整できます。」

生徒

「positionプロパティって何ですか?」

先生

「positionは、要素の配置方法を決めるCSSプロパティです。例えば、relative、absolute、fixed、stickyの4種類があります。top・right・bottom・leftは、これらの位置指定と一緒に使うことで動作が変わります。」

生徒

「どの順番で使うと理解しやすいですか?」

先生

「まずはrelativeで親要素を基準に動かす方法、absoluteで親要素基準の絶対位置指定、fixedで画面基準の固定、そしてstickyでスクロールに応じた固定を見ていきましょう。」

1. top・right・bottom・leftの基本動作

1. top・right・bottom・leftの基本動作
1. top・right・bottom・leftの基本動作

CSSのtop・right・bottom・leftは、要素を配置する「距離」を指定するためのプロパティです。 これらは単独では動作せず、必ずpositionプロパティ(位置決めのルール)とセットで使います。 プログラミング未経験の方でも、「基準点からどのくらい離すか」を指示するものだと考えると分かりやすくなります。

指定できる単位は、px(ピクセル)で固定値を決めるほか、%(パーセント)を使って親要素の大きさに合わせたり、emを使って文字サイズ基準で動かしたりすることが可能です。 例えば、top: 20px;と記述した場合、「上端から20px押し下げる」という指示になります。 逆に、要素を上に動かしたい場合はマイナスの値(例:-10px)を使うこともあります。


<style>
    .base-box {
        position: relative; /* 位置調整を有効にする設定 */
        top: 30px;          /* 上から30pxの位置へ移動 */
        left: 50px;         /* 左から50pxの位置へ移動 */
        width: 150px;
        height: 100px;
        background-color: #0d6efd;
        color: white;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 8px;
    }
</style>

<div class="base-box">
    30px下、50px右
</div>
ブラウザ表示

上のサンプルでは、本来表示されるはずの場所から、下方向と右方向に隙間を作って移動させています。 このように「四方のどこを基準に、どれだけ距離を置くか」を制御するのが、これら4つのプロパティの役割です。 ただし、positionの値がstatic(初期値)のままだと、これらの数値を指定しても一切反映されないという重要なルールを覚えておきましょう。

2. position: relativeとtop・leftの組み合わせ

2. position: relativeとtop・leftの組み合わせ
2. position: relativeとtop・leftの組み合わせ

position: relativeは、要素を「現在の本来あるべき位置」を基準にして動かす設定です。 プログラミング未経験の方には、「自分の席(元の位置)から、どのくらいズレるか」を指定するとイメージすると分かりやすいでしょう。

この設定の最大の特徴は、要素を動かしたとしても、元の場所に要素が存在していた分のスペースがそのまま残るという点です。 そのため、周りの他の要素(文章や画像)の配置を崩すことなく、特定の要素だけを微調整したいときに非常に重宝します。


<style>
    .sample-container {
        background-color: #f8f9fa;
        padding: 20px;
        border: 1px solid #dee2e6;
    }
    .relative-box {
        position: relative; /* 元の位置を基準にする */
        top: 20px;          /* 上から20px押し下げる */
        left: 30px;         /* 左から30px右へ動かす */
        background-color: #ffc107;
        padding: 20px;
        width: 180px;
        text-align: center;
        font-weight: bold;
        border-radius: 5px;
        box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    }
    .next-text {
        background-color: #e9ecef;
        padding: 10px;
    }
</style>

<div class="sample-container">
    <div class="relative-box">
        ここが動く要素です
    </div>
    <div class="next-text">
        後ろに続く要素(位置は変わりません)
    </div>
</div>
ブラウザ表示

上の例を見ると、黄色のボックスが本来表示される位置から「20px下」「30px右」に移動しているのが分かります。 しかし、その下にあるグレーのテキストの位置は、黄色いボックスが移動しても上に詰められることはありません。

このように、レイアウトの全体像を壊さずに「ロゴを少しだけ右に寄せたい」「アイコンを数ピクセルだけ上に上げたい」といった直感的なデザイン調整に最適なのが、このrelativeと距離指定の組み合わせです。

3. position: absoluteとtop・right・bottom・leftの組み合わせ

3. position: absoluteとtop・right・bottom・leftの組み合わせ
3. position: absoluteとtop・right・bottom・leftの組み合わせ

absoluteは、親要素を基準に絶対位置を指定します。親要素にposition: relativeを設定していれば、その親の中で位置が決まります。


<style>
    .parent {
        position: relative;
        width: 300px;
        height: 200px;
        background-color: #e9ecef;
        margin-bottom: 20px;
    }
    .absolute-box {
        position: absolute;
        top: 20px;
        right: 20px;
        background-color: #0d6efd;
        color: white;
        padding: 10px;
    }
</style>

<div class="parent">
    <div class="absolute-box">absolute + top/right</div>
</div>
ブラウザ表示

absoluteは親要素の左上を基準にtopやrightで位置を指定します。

4. position: fixedとtop・leftの組み合わせ

4. position: fixedとtop・leftの組み合わせ
4. position: fixedとtop・leftの組み合わせ

fixedは画面を基準に位置を固定します。スクロールしても動かず、ナビゲーションバーやヘッダーに便利です。


<style>
    .fixed-box {
        position: fixed;
        top: 10px;
        left: 10px;
        background-color: #198754;
        color: white;
        padding: 10px;
    }
</style>

<div class="fixed-box">fixed + top/left</div>
<div style="height:800px;"></div>
ブラウザ表示

スクロールしても画面の上から10px、左から10pxの位置に固定されています。

5. position: stickyとtopの組み合わせ

5. position: stickyとtopの組み合わせ
5. position: stickyとtopの組み合わせ

stickyはスクロールに応じて固定される特性があります。topを指定すると、その位置までスクロールしたら止まります。


<style>
    .sticky-header {
        position: sticky;
        top: 0;
        background-color: #ffc107;
        padding: 10px;
        font-weight: bold;
    }
    .content {
        height: 1200px;
        background-color: #f8f9fa;
        padding: 20px;
    }
</style>

<div class="sticky-header">sticky + top</div>
<div class="content">長い記事の内容</div>
ブラウザ表示

スクロールするとsticky-headerが画面上部で止まり、ユーザーが内容を見失わないように固定されます。

6. top・right・bottom・leftを使うときのルールまとめ

6. top・right・bottom・leftを使うときのルールまとめ
6. top・right・bottom・leftを使うときのルールまとめ
  • relativeでは元の位置を基準にずれる
  • absoluteでは親要素を基準に絶対位置を指定
  • fixedでは画面全体を基準に固定
  • stickyではスクロールに応じてtopやbottomで固定
  • 単位にはpxや%などを使い、親要素や画面に対する距離を設定

これらの基本ルールを押さえると、ページ上での要素配置が自由にでき、ナビゲーションや広告、見出しなどのUIを整えることができます。

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

CSSの「top」「right」「bottom」「left」というプロパティは、どのような役割を持っているのでしょうか?初心者にもわかりやすく教えてください。

CSSの「top」「right」「bottom」「left」は、Webページ上の要素を「上下左右」のどの位置に配置するかを指定するためのプロパティです。これらは「位置指定プロパティ」と呼ばれ、要素を現在の場所から移動させたり、特定の親要素や画面全体の端からどれくらい離すかを決めるために使います。例えば「top: 20px;」と指定すれば、基準となる場所から20ピクセル分、下に押し下げるような動きになります。ただし、これら単体では動作せず、必ず「position」プロパティとセットで使うというルールがあります。
2026年最新 スキルアップ・実践セミナー

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。

本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。

具体的なワークショップ内容と環境

【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。

【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。

この60分で得られる3つの技術資産

1. 現代のデファクトスタンダード「Flexbox」

要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。

2. メンテナンス性を高めるCSS設計の基礎

後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。

3. パフォーマンスと美しさの両立

画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。

※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。

【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー

リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!

各回少人数・マンツーマン形式で徹底サポート

このセミナーの詳細・お申し込みはこちら
カテゴリの一覧へ
新着記事
New1
Bootstrap
Bootstrapでダーク/ライト切り替えを滑らかに!初心者でもわかるアニメーションとprefers-reduced-motion対応
New2
CSS
CSS Flexbox入門!display: flexの基本と適用方法を初心者向けに解説
New3
Bootstrap
Bootstrapドロップダウンでホバー開閉は可能?クリック切替とアクセシビリティを初心者向けに解説
New4
Bootstrap
Bootstrapで既存サイトをテーマ対応へ!初心者でもわかる段階的移行手順と導入のコツ
人気記事
No.1
Java&Spring記事人気No1
CSS
CSSで要素のサイズを自動調整!autoとfit-contentの使い方
No.2
Java&Spring記事人気No2
Bootstrap
Bootstrap 5 のカラーと背景色を完全ガイド!初心者向け色の使い分け解説
No.3
Java&Spring記事人気No3
HTML
HTML inputタグとは?フォーム入力を担う基本要素を初心者向けに完全解説
No.4
Java&Spring記事人気No4
CSS
テキストボックスの作り方!CSSで幅・高さ・色を自由にカスタマイズする方法
No.5
Java&Spring記事人気No5
CSS
CSSでGoogle Fontsを使う方法を完全ガイド!初心者でもできるフォントの変更
No.6
Java&Spring記事人気No6
HTML
HTML formのGETとPOSTの違いを徹底解説!初心者でもわかる送信方式の使い分け
No.7
Java&Spring記事人気No7
CSS
CSSの::placeholderの使い方を完全ガイド!入力欄のデザインを自由自在に変える方法
No.8
Java&Spring記事人気No8
Bootstrap
Bootstrap 5ボタン入門:.btn・.btn-primaryの種類とサイズ・形を初心者向けに完全解説