CSSのtop・right・bottom・leftの使い方を完全解説!初心者でもわかる位置指定ルール
生徒
「先生、CSSで要素を上下左右に動かすにはどうすればいいですか?」
先生
「CSSでは、positionプロパティと組み合わせてtop、right、bottom、leftを使うことで、要素の位置を自由に調整できます。」
生徒
「positionプロパティって何ですか?」
先生
「positionは、要素の配置方法を決めるCSSプロパティです。例えば、relative、absolute、fixed、stickyの4種類があります。top・right・bottom・leftは、これらの位置指定と一緒に使うことで動作が変わります。」
生徒
「どの順番で使うと理解しやすいですか?」
先生
「まずはrelativeで親要素を基準に動かす方法、absoluteで親要素基準の絶対位置指定、fixedで画面基準の固定、そしてstickyでスクロールに応じた固定を見ていきましょう。」
1. top・right・bottom・leftの基本動作
top、right、bottom、leftは、要素を上下左右に動かすためのCSSプロパティです。単位にはpx(ピクセル)、%、emなどを使います。
例えば、top: 20px;と書くと、要素の上端から20px下に移動します。ただし、このプロパティが効くかどうかはpositionの値によって変わります。
2. position: relativeとtop・leftの組み合わせ
relativeは、要素自身の元の位置を基準に位置を調整します。元の位置をずらすイメージです。
<style>
.relative-box {
position: relative;
top: 20px;
left: 30px;
background-color: #ffc107;
padding: 20px;
width: 150px;
text-align: center;
}
</style>
<div class="relative-box">relative + top/left</div>
ブラウザ表示
上の例では、relativeの元の位置を基準に20px下、30px右にずれます。
3. position: absoluteとtop・right・bottom・leftの組み合わせ
absoluteは、親要素を基準に絶対位置を指定します。親要素にposition: relativeを設定していれば、その親の中で位置が決まります。
<style>
.parent {
position: relative;
width: 300px;
height: 200px;
background-color: #e9ecef;
margin-bottom: 20px;
}
.absolute-box {
position: absolute;
top: 20px;
right: 20px;
background-color: #0d6efd;
color: white;
padding: 10px;
}
</style>
<div class="parent">
<div class="absolute-box">absolute + top/right</div>
</div>
ブラウザ表示
absoluteは親要素の左上を基準にtopやrightで位置を指定します。
4. position: fixedとtop・leftの組み合わせ
fixedは画面を基準に位置を固定します。スクロールしても動かず、ナビゲーションバーやヘッダーに便利です。
<style>
.fixed-box {
position: fixed;
top: 10px;
left: 10px;
background-color: #198754;
color: white;
padding: 10px;
}
</style>
<div class="fixed-box">fixed + top/left</div>
<div style="height:800px;"></div>
ブラウザ表示
スクロールしても画面の上から10px、左から10pxの位置に固定されています。
5. position: stickyとtopの組み合わせ
stickyはスクロールに応じて固定される特性があります。topを指定すると、その位置までスクロールしたら止まります。
<style>
.sticky-header {
position: sticky;
top: 0;
background-color: #ffc107;
padding: 10px;
font-weight: bold;
}
.content {
height: 1200px;
background-color: #f8f9fa;
padding: 20px;
}
</style>
<div class="sticky-header">sticky + top</div>
<div class="content">長い記事の内容</div>
ブラウザ表示
スクロールするとsticky-headerが画面上部で止まり、ユーザーが内容を見失わないように固定されます。
6. top・right・bottom・leftを使うときのルールまとめ
- relativeでは元の位置を基準にずれる
- absoluteでは親要素を基準に絶対位置を指定
- fixedでは画面全体を基準に固定
- stickyではスクロールに応じてtopやbottomで固定
- 単位にはpxや%などを使い、親要素や画面に対する距離を設定
これらの基本ルールを押さえると、ページ上での要素配置が自由にでき、ナビゲーションや広告、見出しなどのUIを整えることができます。