カテゴリ: CSS 更新日: 2025/10/25

CSSのz-indexとposition完全ガイド!初心者でもわかる要素を重ねる方法

要素を重ねる方法(z-indexとpositionの活用)
要素を重ねる方法(z-indexとpositionの活用)

先生と生徒の会話形式で理解しよう

生徒

「先生、Webサイトを見ていると文字の上に画像が重なっていたり、ボタンが浮いているみたいに見えることがありますよね。あれってどうやって作るんですか?」

先生

「それはCSSのz-indexpositionを使って、要素を重ねているんです。簡単にいうと、どの要素を前に出すか、後ろに下げるかを決めているんですよ。」

生徒

「へえ!じゃあ、名札を胸につけるときに上に貼るか、シャツの下に隠すかを選ぶみたいな感じですか?」

先生

「そうそう!まさにそれと同じです。CSSで要素を重ねるときは、z-indexとpositionを組み合わせて使うのが基本なんですよ。」

1. z-indexとは?

1. z-indexとは?
1. z-indexとは?

z-index(ゼットインデックス)は、要素を「前後に重ねる順番」を決めるCSSプロパティです。数字が大きい要素ほど手前に表示され、数字が小さい要素は奥に表示されます。

ただし、z-indexを使うには条件があり、要素にposition(relative・absolute・fixed・sticky)が指定されていないと効果が出ません。

2. positionとは?

2. positionとは?
2. positionとは?

positionは、要素を配置する方法を決めるプロパティです。z-indexと一緒に使うことで、要素を好きな位置に動かしながら重ねられます。

  • static:デフォルト。普通に文書の流れどおりに配置。
  • relative:元の位置を基準にずらして配置できる。
  • absolute:親要素を基準に自由に配置できる。
  • fixed:画面全体を基準に固定される。
  • sticky:スクロールに応じて動いたり止まったりする。

3. z-indexとpositionを組み合わせて使う

3. z-indexとpositionを組み合わせて使う
3. z-indexとpositionを組み合わせて使う

では、実際にz-indexとpositionを使って要素を重ねる例を見てみましょう。


<style>
.box1 {
    width: 200px;
    height: 200px;
    background-color: skyblue;
    position: absolute;
    top: 50px;
    left: 50px;
    z-index: 1;
}
.box2 {
    width: 200px;
    height: 200px;
    background-color: pink;
    position: absolute;
    top: 100px;
    left: 100px;
    z-index: 2;
}
</style>

<div class="box1">青い箱</div>
<div class="box2">ピンクの箱</div>
ブラウザ表示

この例では、2つの四角形を少しずらして配置しています。z-index: 2を指定したピンクの箱が、z-index: 1の青い箱の上に重なって表示されます。

4. z-indexの数字の意味

4. z-indexの数字の意味
4. z-indexの数字の意味

z-indexの数字が大きければ大きいほど前に出ます。逆に小さい数字は奥に隠れます。数字にはマイナスも使えます。


<style>
.background {
    width: 200px;
    height: 200px;
    background-color: lightgray;
    position: absolute;
    top: 50px;
    left: 50px;
    z-index: -1;
}
.foreground {
    width: 150px;
    height: 150px;
    background-color: orange;
    position: absolute;
    top: 80px;
    left: 80px;
    z-index: 1;
}
</style>

<div class="background">背景の箱</div>
<div class="foreground">前の箱</div>
ブラウザ表示

この例では、灰色の箱にz-index: -1を指定しているので、オレンジの箱よりも後ろに表示されます。

5. よくある失敗例と注意点

5. よくある失敗例と注意点
5. よくある失敗例と注意点

初心者がz-indexを使うときによくあるミスを紹介します。

  • positionを指定していない:z-indexはstaticのままでは効かないので、必ずpositionをrelativeやabsoluteに設定する必要があります。
  • 親要素の影響を受ける:子要素のz-indexは、親要素のz-indexの影響を受けます。親要素が手前にあると、どんなに子要素に大きなz-indexを設定しても奥に隠れることがあります。
  • 数字をやたらに大きくしすぎる:z-indexを9999などに設定するケースがありますが、複雑になる原因なので、整理して使う方が良いです。

6. 実生活での例え

6. 実生活での例え
6. 実生活での例え

z-indexをわかりやすくイメージするために、実生活の例えを考えてみましょう。

例えば、机の上にノート、教科書、透明の下敷きを重ねる場面を想像してください。

  • 下に置いたものは奥に隠れる(z-indexが小さい)。
  • 上に置いたものは手前に見える(z-indexが大きい)。
  • 透明の下敷きのように、上にあっても下のものが少し見えるケースもある。

このように、Webページの要素も現実世界の「重ね方」と同じように考えると理解しやすくなります。

関連記事:
カテゴリの一覧へ
新着記事
CSSのダブルボーダーや点線・破線を完全ガイド!初心者でもわかるdotted・dashed・doubleの使い方
Bootstrapの$theme-colorsを拡張!ブランドカラー追加の完全ガイド【map-merge】
CSSの境界線を部分的に設定する方法を完全ガイド!初心者でもわかるborder-topなどの使い方
BootstrapのSass変数を完全ガイド!初心者でもわかる色・余白・フォント設定
人気記事
No.1
Java&Spring記事人気No1
CSSで文字の間隔を調整する方法!初心者でもわかるletter-spacingとword-spacingの使い方
No.2
Java&Spring記事人気No2
CSSのtext-alignの使い方完全ガイド!初心者でもわかる文字揃えの基本
No.3
Java&Spring記事人気No3
Bootstrap 3から5への一気移行ガイド!初心者でもわかる段階的リファクタリングの進め方
No.4
Java&Spring記事人気No4
CSSの文字間・単語間の調整と影の付け方を完全ガイド!初心者でもわかるテキスト装飾術