本記事では、position:absoluteを使って中央寄せする方法について解説しています。
HTML/CSSの学習におすすめ参考書
1冊ですべて身につくHTML&CSSとWebデザイン入門講座
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
後輩ちゃん
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!
Contents
position:absoluteで中央寄せする手順
後輩ちゃん
先輩!position:absoluteで中央寄せする方法を教えてください!
先輩くん
了解!3つの手順に分けて解説するね!
サンプルコード
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="parent">
<p class="children">SAMPLE</p>
</div>
</body>
</html>
.parent {
background-color: brown;
width: 200px;
height: 200px;
}
.children {
color: white;
}

手順1:親要素にposition:relative、子要素にposition:absoluteを指定
先輩くん
まず始めに起点となる親要素にposition:relativeを指定し、中央寄せしたい子要素にposition:absoluteを指定するよ!
.parent {
background-color: brown;
width: 200px;
height: 200px;
/* 追加 */
position: relative;
}
.children {
color: white;
/* 追加 */
position: absolute;
}
先輩くん
この状態で、下準備は完了です!次から子要素を動かして中央寄せしていきます!
手順2:中央寄せ①
先輩くん
position:absoluteを指定した子要素に中央寄せする記述を追加します!
.parent {
background-color: brown;
width: 200px;
height: 200px;
position: relative;
}
.children {
color: white;
position: absolute;
/* 追加 */
top: 50%;
left: 50%;
}

後輩ちゃん
中央よりも少し右下にずれていませんか?
先輩くん
いい所に気が付いたね!ここでの中央寄せは、子要素の左上(画像の黒丸)を起点に中央寄せしているから、まだ完璧な中央寄せになっていないんだ!
手順3:中央寄せ②
先輩くん
最後に子要素本体を左に50%・上に50%移動する記述を追加します!
.parent {
background-color: brown;
width: 200px;
height: 200px;
position: relative;
}
.children {
color: white;
position: absolute;
top: 50%;
left: 50%;
/* 追加 */
transform: translate(-50%, -50%);
}

先輩くん
綺麗に子要素が中央に配置されましたね!