Menu
Coddy logo textTech

配置の基本

CoddyのHTMLジャーニー「Styling with CSS」セクションの一部 — レッスン 55/76。

CSSにおいて、ポジショニングは、ウェブページ上の要素の配置を制御するためのプロパティのセットです。デフォルトでは、要素はHTMLドキュメントの通常のフローに従って配置されます。しかし、CSSのポジショニングを使用すると、要素を通常のフローから切り離し、包含要素またはビューポート(ブラウザウィンドウの表示領域)を基準とした特定の場所に配置することができます。 

positionプロパティにはいくつかの値があり、それぞれ独自の動作をします:

  • static: これはデフォルトの値です。要素はドキュメントの通常のフローに従って配置されます。toprightbottom、および left プロパティは効果がありません。
  • relative: 要素は、その通常の位置を基準に配置されます。toprightbottom、および left プロパティを設定すると、要素は通常の位置から移動しますが、通常のフロー内では依然としてスペースを占有します。
  • absolute: 要素は通常のフローから取り除かれ、最も近い位置指定された祖先要素(static 以外の position を持つ祖先要素)に対して相対的に配置されます。位置指定された祖先要素が見つからない場合は、初期包含ブロック(通常はビューポート)に対して相対的に配置されます。
  • fixed: 要素は通常のフローから取り除かれ、ビューポートに対して相対的に配置されます。ページがスクロールされても、その場に固定されたままになります。

positionプロパティを使用するための基本構文は以下の通りです:

selector {
    position: value;
}
  • value: 希望する配置の挙動(例:static, relative, absolute, fixed, sticky)。
challenge icon

チャレンジ

簡単

親要素の <div> と、その中に含まれる子要素の <div> が記述されたHTMLドキュメントがあります。あなたのタスクは、position プロパティを使用して要素の配置コンテキストを変更することです。以下の手順に従ってください。

  1. container クラスを持つ <div> 要素をターゲットとするCSSルールを記述してください。その position プロパティを relative に設定します。これにより、この要素は子要素にとっての配置の基準となる祖先要素になります。
  2. box クラスを持つ <div> 要素をターゲットとするCSSルールを記述してください。その position プロパティを absolute に設定します。これにより、要素は通常のフローから外れ、最も近い配置済みの祖先要素(container)を基準に配置できるようになります。
  3. .box 要素の top プロパティを 50px に、left プロパティを 100px に設定してください。これにより、ボックスは配置の基準となる祖先要素(container)の上端から50ピクセル、左端から100ピクセルの位置に配置されます。

チートシート

positionプロパティは、ウェブページ上での要素の配置方法を制御します:

selector {
    position: value;
}

配置の値:

  • static: 通常のドキュメントフローにおけるデフォルトの配置
  • relative: 通常の位置を基準に相対的に配置され、フロー内でのスペースは保持されます
  • absolute: 通常のフローから除外され、最も近い位置指定された祖先要素を基準に配置されます
  • fixed: 通常のフローから除外され、ビューポートを基準に配置され、スクロールしても固定されたままになります

toprightbottom、およびleftプロパティを使用して位置を調整します(staticの場合を除く)。

自分で試してみよう

<html>
<head>
    <title>Positioning Basics</title>
    <style>
        .container {
            width: 400px;
            height: 300px;
            border: 1px solid black;
        }
        .box {
            width: 100px;
            height: 100px;
            background-color: lightblue;
        }
        /* Write CSS rules here */
    </style>
</head>
<body>
    <div class="container">
        <div class="box"></div>
    </div>
</body>
</html>
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Styling with CSSのすべてのレッスン