コーディング犬に聞く:「position:absoluteが難しいです」
CSSを勉強していると、
多くの人がつまずくものがあります。
それが、
position: absolute;です。
初心者の頃は、
- 思った場所に行かない
- どこかへ消えた
- 親要素から飛び出した
- topやleftが効かない
など、
意味が分からなくなることがよくあります。
今回は、
「position:absoluteが難しいです」
という悩みをコーディング犬に相談してみました。

Q. position:absoluteって何?
「要素を好きな場所に配置するためのCSSだよ!」
例えば、
.box{
position:absolute;
top:0;
left:0;
}とすると、
指定した場所へ移動できます。


Q. topとかleftって何?
「位置の指定だよ!」
例えば、
top:0;は、
上から0px。
left:0;は、
左から0px。
です。
つまり、
top:0;
left:0;なら、
左上に配置されます。


Q. じゃあ簡単じゃない?
「実はここが罠なんだ。」
初心者が最初にやると、
だいたいこうなります。
.box{
position:absolute;
}「あれ?」
「どこ行った?」
「なんか変な場所にある!」
これがabsoluteあるあるです。


Q. なぜそうなるの?
「基準が分かってないから!」
absoluteには、
必ず
『どこを基準にするか』
があります。


Q. 基準?
例えば、
こんなHTML。
<div class="parent">
<div class="child">
ボタン
</div>
</div>そして、
.child{
position:absolute;
top:0;
right:0;
}とします。
初心者は、
親要素の右上に行くと思います。
でも実際は違うことがあります。


Q. なぜ?
「親にpositionが無いから!」
例えば、
.parent{
position:relative;
}が無いと、
absoluteは画面全体を基準にします。


Q. つまり?
覚えることは1つ。
.parent{
position:relative;
}
.child{
position:absolute;
}セットで覚える。
これが超重要です。


Q. relativeって何?
「absoluteの親になるための目印!」
初心者は、
position:relative;を見ると、
位置を動かすものだと思いがちです。
でも実務では、
position:absolute;のために使うことが多いです。


Q. 実際によくある使い方は?
「NEWマーク!」
例えば、
商品名
NEWみたいなやつ。
HTML
<div class="card">
<span class="new">NEW</span>
</div>CSS
.card{
position:relative;
}
.new{
position:absolute;
top:10px;
right:10px;
}これで右上に配置できます。


Q. 他には?
例えば、
- バナーの装飾
- ボタンのアイコン
- 吹き出し
- ラベル
- モーダルの閉じるボタン
など。
Web制作ではかなり使います。


Q. absoluteにすると何が変わる?
「通常の流れから外れる!」
例えば、
<div>A</div>
<div>B</div>
<div>C</div>なら、
A
B
Cです。
でも、
Bをabsoluteにすると、
A
Cみたいになります。
レイアウトの計算から外れるんです。


Q. だから重なるの?
「その通り!」
absoluteは、
浮いている状態。
なので、
他の要素と重なります。


Q. z-indexって関係ある?
「めちゃくちゃある!」
例えば、
z-index:10;なら、
前に出ます。
z-index:1;なら、
後ろになります。
absoluteとセットでよく使います。


Q. 初心者がよくやるミスは?
これです。
.child{
position:absolute;
}.parent{
position:relative;
}を書き忘れる。
これは本当に多いです。


Q. 覚え方はある?
「relativeが家。」
「absoluteが子供。」
子供は家を基準に動く。
だから、
.parent{
position:relative;
}.child{
position:absolute;
}これで覚えればOK。


Q. 実務では頻繁に使う?
「かなり使う!」
ただし、
レイアウト全体を作るためではありません。
今は、
display:flex;や
display:grid;が主流です。
absoluteは、
『細かい位置調整』
で使うことが多いです。

まとめ
position:absoluteが難しく感じる理由は、
「基準」
を理解していないからです。
まず覚えるべきは、
.parent{
position:relative;
}
.child{
position:absolute;
}このセット。
そして、
- top
- right
- bottom
- left
で位置を調整します。
absoluteは、
Web制作で頻繁に使う重要なCSSです。
最初は難しく感じますが、
「relativeが家、absoluteが子供」
と覚えると一気に理解しやすくなります。
コーディング犬との約束です。

