Absolute配置とContaining Block
最も近いposition指定済みの祖先要素を基準に、要素をabsoluteで配置します。
「Absolute配置とContaining Block」はCoddyKit上の無料CSS Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCSS Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 CSS Academyコースには全4レッスンが含まれています。
position: absolute
絶対配置された要素は通常のドキュメントフローから除外されます。他の要素からは、その要素が存在しないかのように扱われます。最も近いposition指定済みの祖先要素を基準に配置されます。
包含ブロック
絶対配置された要素の包含ブロックは、position の値が static 以外である最も近い祖先要素です。そのような祖先要素がない場合、要素は初期包含ブロック(ビューポート)を基準に配置されます。
包含ブロックの設定
最も一般的なパターンは、親要素に position: relative を追加して、絶対配置された子要素をその中に収めることです。
<div class="card">Card content<span class="badge">Badge</span></div>
absoluteでのオフセットプロパティ
絶対配置では、top/right/bottom/left は包含ブロックのパディング端から測定されます。
<div class="tooltip-wrap">Hover target<span class="tooltip">I'm below the parent</span></div>
absoluteによる中央揃え
絶対配置された要素を中央揃えにする古典的なテクニックです。
<div class="center-wrap"><div class="centered">Perfectly centered</div></div>
absolute要素の幅と高さ
絶対配置された要素は、デフォルトではコンテンツに合わせて縮みます(widthやheightを設定した場合を除きます)。ブロック要素のようにコンテナの幅いっぱいに広がることはありません。
すべての端を使った伸縮
4つの端すべてを0に設定すると、絶対配置された要素が包含ブロックいっぱいに広がります。
<div class="stretch-wrap"><div class="overlay">Overlay covers all edges</div></div>
insetのショートハンド
insetプロパティは、top、right、bottom、leftをまとめて指定するショートハンドです。
<div class="cover-wrap"><div class="full-cover"></div></div>
z-indexによる重なり順の制御
絶対配置された要素はスタッキングコンテキストに参加します。z-index を使って、重なった絶対配置要素のどれを上に表示するかを制御します。
<div class="stack-wrap"><div class="box-a">Behind</div><div class="tooltip">On top (z-index:100)</div></div>
よくある落とし穴:親要素を忘れる
親要素に position: relative を追加し忘れると、絶対配置された子要素は、すでにpositionが設定されている最も近い祖先要素を基準に配置されます。その祖先要素は、多くの場合ビューポートです。必ず包含ブロックを確認してください。
Flex/Grid内のabsolute
flexまたはgridコンテナは、自動的にposition指定済みの要素になるわけではありません。絶対配置された子要素の包含ブロックにするには、明示的に position: relative を追加する必要があります。
理解度チェック
どの祖先要素にも static 以外の position が設定されていない場合、絶対配置された要素はどこを基準に配置されますか。
まとめ
絶対配置された要素はドキュメントフローから外れ、最も近いstatic以外の祖先要素を基準に配置されます。配置を制御するには、親要素に必ず position: relative を追加します。inset: 0 を使用すると、絶対配置された要素をコンテナいっぱいに広げられます。
よくある質問
「Absolute配置とContaining Block」レッスンは無料ですか?
はい。「Absolute配置とContaining Block」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、CSS Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 CSS Academyコースには全4レッスンが含まれています。
「Absolute配置とContaining Block」で何を学びますか?
最も近いposition指定済みの祖先要素を基準に、要素をabsoluteで配置します。 ブラウザで直接実行するハンズオンコードでCSS Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
CSS Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCSS Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Absolute配置とContaining Block」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCSS Academyレッスンでコードを書いて実行できますか?
はい。すべてのCSS Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- StaticとRelativeによる配置
- Absolute配置とContaining Block
- FixedとStickyによる配置
- Z-indexとスタッキングコンテキスト