StaticとRelativeによる配置
デフォルトのstatic位置と、relativeで要素を通常の位置から移動する方法を理解します。
「StaticとRelativeによる配置」はCoddyKit上の無料CSS Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCSS Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CSS Academyコースには全4レッスンが含まれています。
positionプロパティ
positionプロパティは、要素をドキュメントフロー内でどのように配置するかを制御します。値は static、relative、absolute、fixed、sticky の5つです。
position: static(デフォルト)
すべての要素のデフォルトは position: static です。static要素は通常のドキュメントフローに従います。ブロック要素は縦に積み重なり、インライン要素は左から右へ流れます。オフセットプロパティ(top、right、bottom、left)は効果を持ちません。
position: relative
position: relative は要素を通常のフローに残したまま、top、right、bottom、left を使って本来の位置を基準にオフセットできるようにします。
<div class="shifted">Shifted 10px down, 20px right — original space still reserved.</div>
重要:スペースは保持される
position: relative とオフセットを使用すると、要素は見た目上移動しますが、元のレイアウト上のスペースは確保されたままです。他の要素がその空きを埋めることはありません。
Top、Right、Bottom、Left
オフセットプロパティは、基準点から要素を移動します。
top:上端から下へ移動しますleft:左端から右へ移動します- 負の値を指定すると方向が反転します
<span class="badge">NEW</span>
z-indexにはpositionが必要
z-index はpositionが設定された要素(static以外)でのみ機能します。重なり順を制御する必要がある場合は、少なくとも position: relative を設定します。
<div class="tooltip">Tooltip (relative + z-index)</div>
包含ブロックとしてのrelative
position: relative の最も重要な用途は、オフセット値を指定しなくても、要素を絶対配置された子要素の包含ブロックにすることです。
<div class="card">Card content<span class="card__badge">Badge</span></div>
relativeとtransformの組み合わせ
position: relative と transform を組み合わせると、新しいスタッキングコンテキストが作成されます。要素はフロー内に残ったまま、見た目上変形できます。
<div class="hover-lift demo-hover">Hover me — I lift up</div>
relativeを使用しない場合
すべての要素に position: relative を設定するのは避けてください。スタッキングコンテキストが作成され、z-indexの管理が複雑になることがあります。オフセットが必要な場合、または絶対配置された子要素の基準にする場合にのみ使用します。
トランジションとの組み合わせ
relativeによる配置はレイアウトフローに影響しないため、視覚効果のために top/left を安全にアニメーションできます。ただし、transform: translate() をアニメーションさせるほうがパフォーマンスに優れています。
<div class="shake demo-hover">Hover me — I shake</div>
positionの問題をデバッグする
DevToolsでは、Computedパネルで有効な position の値を確認します。ボックスモデルの図には、適用されたオフセット座標が正確に表示されます。
理解度チェック
position: relative; top: 20px を適用すると、要素のレイアウト上のスペースはどうなりますか。
まとめ
position: static はデフォルトで、オフセットもスタッキングもありません。position: relative を使うと、要素自身の位置を基準にオフセットでき、レイアウト上のスペースが保持されます。最も重要な役割は、絶対配置された子要素の包含ブロックになることです。
よくある質問
「StaticとRelativeによる配置」レッスンは無料ですか?
はい。「StaticとRelativeによる配置」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CSS Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CSS Academyコースには全4レッスンが含まれています。
「StaticとRelativeによる配置」で何を学びますか?
デフォルトのstatic位置と、relativeで要素を通常の位置から移動する方法を理解します。 ブラウザで直接実行するハンズオンコードでCSS Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
CSS Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCSS Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「StaticとRelativeによる配置」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCSS Academyレッスンでコードを書いて実行できますか?
はい。すべてのCSS Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- StaticとRelativeによる配置
- Absolute配置とContaining Block
- FixedとStickyによる配置
- Z-indexとスタッキングコンテキスト