topプロパティの説明
CSSのtopプロパティは、位置指定された要素の包含ブロックの上辺からの距離を指定します。これは、対象となる要素にpositionが与えられており、かつその値がstatic以外の場合に有効となります。
この機能の振る舞いは位置指定の状態に影響を受けます。具体的な特徴は以下の通りです。
positionの値がabsoluteまたはfixedの場合、topは包含ブロックの上辺からの距離を決定しますpositionの値がrelativeの場合、topは元の位置から下へ移動する相対距離を表しますpositionの値がstickyの場合、topは粘着を開始するしきい値の計算に使われますpositionの値がstaticの場合、topは無効になります
位置指定に関するプロパティには以下のものがあり、これを複数組み合わせて使用します。
topに指定できる値
auto- 既定値に従います。
bottomが指定されていた場合は、その値が採用されます。 <length>- 包含ブロックの上辺との距離を数値と長さの単位で指定します。一般的にはpxやemを使用します。
<percentage>- 包含ブロックの高さに対する割合で配置位置を指定します。
topの使い方とサンプルコード
topプロパティの構文は以下の通りです。
/* キーワード値 */
top: auto;
/* <length>値 */
top: 10px;
top: -10px;
top: 1.8em;
top: 5vh;
/* <percentage>値 */
top: 10%;
top: -10%;
/* グローバル値 */
top: inherit;
top: initial;
top: revert;
top: unset;
topの実例
それでは実際にtopプロパティの書き方を見ていきましょう。位置指定の機能は、対象となる要素にpositionが与えられており、かつその値がstatic以外の場合に有効となります。加えて、positionの値に応じて位置指定の基準が変わるため、ここでは各値の挙動を分けて解説します。
positionの値がabsoluteの場合
positionプロパティの値がabsoluteの場合、topは自身の上辺と包含ブロックの上辺との距離を表します。位置指定の基準となる場所は、positionにstatic以外の値が指定された祖先のブロック要素です。
まず初めに、絶対位置の基準がどこにあるのか確認しておきましょう。以下の例は、10pxの境界線と10pxの余白を持つ親要素に、絶対位置の指定を行った子要素を配置したものです。親要素の背景色は、background-clipプロパティの値にcontent-boxを指定しているため、パディング・エリアは背後の色が透けて見える状態になっています。
子要素の配置は、それぞれ4つの角から10pxの距離を取った場所です。これを見ると、絶対位置の基準はコンテンツ・エリアの縁ではなく、パディング・エリアの縁であることが分かります。つまり、topの値を0にすると、包含ブロックの上辺にあたるパディング・エリアの外縁、ボーダー・エリアの内縁に密着します。
サンプルは、resizeに対応しているブラウザであれば、右下のハンドルを掴んでボックスのサイズ変更が可能です。
