Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】CSS Position Property

2026年09月18日に「Dev.to」が公開したITニュース「CSS Position Property」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

CSSの`position`プロパティはWebページの要素配置を制御する。デフォルトの`static`、元の位置から動かす`relative`、親要素基準の`absolute`、画面に固定する`fixed`、スクロールで固定される`sticky`の5種類を使い分け、レイアウトを柔軟に調整する。

出典: CSS Position Property | Dev.to公開日:

ITニュース解説

CSSのpositionプロパティは、ウェブページ上のHTML要素がどこに、どのように表示されるかを制御する、非常に重要なCSSの機能の一つである。このプロパティを使いこなすことで、要素を通常の配置からずらしたり、常に画面に表示し続けたり、親要素の中の特定の位置に固定したりと、多様なレイアウトを実現できるようになる。positionプロパティにはstaticrelativeabsolutefixedstickyという5つの主要な値があり、それぞれが異なる振る舞いをする。

まず、position: staticについて説明する。これは、HTML要素にpositionプロパティが何も指定されていない場合の、すべての要素のデフォルトの配置方法である。staticが指定された要素は、HTMLの記述順に、通常の文書フローに沿って配置される。例えば、ウェブページの文章や画像を上から順番に並べる場合などがこれに該当する。この場合、toprightbottomleftといった位置を指定するプロパティを設定しても、要素の位置は変わらない。つまり、特別な位置調整は行われず、ごく自然な並び方をするのがstaticの特性である。

次に、position: relativeについて解説する。relativeが指定された要素は、基本的にstaticと同様に通常の文書フローの中に配置される。しかし、staticとは異なり、toprightbottomleftといったプロパティを使って、その要素が本来表示されるべき位置から、相対的にずらすことができる点が特徴である。例えば、top: 20px; left: 30px;と指定すると、本来の位置から下に20ピクセル、右に30ピクセル移動する。ここで重要なのは、relativeな要素が移動しても、その要素が本来占めていたスペースは文書フローの中に確保され続けるという点である。そのため、他の要素はrelativeな要素が移動する前の位置を基準にして配置され、relativeな要素が移動しても他の要素の位置には影響しない。このrelativeは、後述するabsoluteな子要素の基準点として頻繁に利用されるため、その役割も理解しておくことが重要である。

3つ目はposition: absoluteである。absoluteが指定された要素は、通常の文書フローから完全に切り離される。これにより、その要素は他の要素の配置に影響を与えず、また他の要素からも影響を受けない。absoluteな要素は、toprightbottomleftプロパティを使って位置を指定するが、その基準となるのは「最も近い、static以外のpositionを持つ祖先要素」である。つまり、親要素やそのさらに上の祖先要素にposition: relativeposition: fixedなどが設定されていれば、absoluteな子要素はその祖先要素の左上を基準に位置が決められる。もし、static以外のpositionを持つ祖先要素が存在しない場合は、ブラウザのビューポート(画面の表示領域)を基準として位置が決定される。この特性を活かすことで、親要素の特定の隅に子要素を配置したり、画像を重ねて表示したりといった、より柔軟なレイアウトが可能になる。

4つ目はposition: fixedである。fixedが指定された要素も、absoluteと同様に通常の文書フローから完全に切り離される。しかし、fixedの基準となるのは常にブラウザのビューポート(画面の表示領域)である。つまり、fixedな要素は、toprightbottomleftプロパティで指定された位置に、画面をスクロールしても常に表示され続ける。例えば、ウェブサイトの右下に表示される「ページトップへ戻る」ボタンや、常に画面上部に固定表示されるナビゲーションバーなどは、このfixedプロパティを使って実現されていることが多い。ユーザーがページをどれだけスクロールしても、重要な情報や操作ボタンが常にアクセスしやすい位置にあることで、ウェブサイトの利便性が向上する。

そして最後の5つ目はposition: stickyである。stickyは比較的新しいpositionの値で、relativefixedの振る舞いを組み合わせたような特性を持つ。stickyが指定された要素は、最初はrelativeな要素のように通常の文書フロー内に配置される。しかし、ユーザーがページをスクロールしていき、その要素がtoprightbottomleftで指定された位置(しきい値)に達すると、まるでfixedな要素のようにその位置に「貼り付く(stick)」という動作をする。例えば、position: sticky; top: 0;と指定されたナビゲーションバーは、最初はコンテンツと共にスクロールするが、画面の一番上(top: 0)に到達すると、それ以降は画面上部に固定されて表示され続ける。これにより、重要なセクションのタイトルやナビゲーションメニューが、必要な時にだけ画面上部に固定表示されるような、動的なユーザー体験を提供できる。stickyは、スクロールと連動したインタラクティブなUIの実現に非常に役立つプロパティである。

これらのpositionプロパティを適切に使い分けることで、システムエンジニアとしてウェブページの表現力を大きく高め、ユーザーにとって使いやすく魅力的なウェブサイトを構築するための基礎を築くことができるだろう。それぞれのプロパティの特性と、それがどのように文書フローや他の要素に影響を与えるかを理解することが、効果的なウェブデザインには不可欠である。

関連コンテンツ