CSS絶対位置の完全マスター!7つのステップで完全理解

CSS絶対位置を示すイメージ図CSS
この記事は約6分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

今回は、CSS絶対位置を完全に理解して使いこなすための7つのステップを徹底解説します。

絶対位置を使いこなせるようになると、デザインの幅が広がり、より魅力的なWebページが作れるようになります。

この記事で、CSS絶対位置のプロを目指しましょう!

●ステップ1:絶対位置の基本を理解する

まずは、CSS絶対位置の基本から学びましょう。

絶対位置とは、要素をページ上の特定の位置に配置するために使用されるCSSのプロパティです。

絶対位置は、position: absolute;と指定します。

その後、toprightbottomleftの4つのプロパティを使って、配置する位置を指定できます。

.box {
  position: absolute;
  top: 50px;
  left: 100px;
}

このサンプルコードでは、.boxというクラスが適用された要素を、上から50px、左から100pxの位置に配置します。

●ステップ2:親要素との関係を理解する

絶対位置は、親要素がposition: relative;position: absolute;で指定されている場合、その親要素を基準に位置が決まります。

親要素に位置指定がない場合は、最も近い祖先要素で位置指定がされている要素を基準にします。

<div class="parent">
  <div class="box"></div>
</div>
<!-- HTML -->
.parent {
  position: relative;
  width: 300px;
  height: 200px;
  background-color: lightblue;
}

.box {
  position: absolute;
  top: 50px;
  left: 100px;
  width: 50px;
  height: 50px;
  background-color: red;
}
/* CSS */

この例では、.box要素は、.parent要素を基準に上から50px、左から100pxの位置に配置されます。

●ステップ3:絶対位置と他のpositionプロパティとの違いを理解する

絶対位置以外にも、position: relative;position: fixed;position: sticky;といったプロパティがあります。

これらの違いを理解することで、より効果的に絶対位置を使いこなせます。

  • position: relative;: 要素を通常の位置から相対的に移動させる。親要素や他の要素には影響を与えず、元の位置を保持したまま移動します。
  • position: fixed;: 要素をビューポート(ブラウザの表示領域)に対して固定された位置に配置します。スクロールしても位置が変わりません。
  • position: sticky;: 要素が特定の範囲内でスクロールに追従し、範囲外では固定された位置になるプロパティです。

●ステップ4:z-indexプロパティで重なり順を制御する

絶対位置を使うと、要素が重なることがあります。

その際、どの要素が前面に表示されるかを制御するために、z-indexプロパティを使います。

.box1 {
  position: absolute;
  top: 50px;
  left: 100px;
  z-index: 2;
}

.box2 {
  position: absolute;
  top: 50px;
  left: 130px;
  z-index: 1;
}

このサンプルコードでは、.box1要素が.box2要素の上に表示されます。

●ステップ5:絶対位置の応用例1 – オーバーレイ表示

絶対位置を使って、画像やテキストにオーバーレイ(重ねて表示)する効果を実現できます。

<div class="container">
  <img src="image.jpg" alt="sample image">
  <div class="overlay-text">Sample Text</div>
</div>
<!-- HTML -->
.container {
  position: relative;
  display: inline-block;
}

.overlay-text {
  position: absolute;
  top: 0;
  left: 0;
  color: white;
  background-color: rgba(0, 0, 0, 0.5);
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
/* CSS */

この例では、.overlay-text要素が画像の上に表示されます。

●ステップ6:絶対位置の応用例2 – ドロップダウンメニュー

絶対位置を使って、ドロップダウンメニューを作成することもできます。

<ul class="nav">
  <li class="nav-item">
    <a href="#">Menu 1</a>
    <ul class="dropdown">
      <li><a href="#">Submenu 1-1</a></li>
      <li><a href="#">Submenu 1-2</a></li>
    </ul>
  </li>
  <li class="nav-item"><a href="#">Menu 2</a></li>
</ul>
<!-- HTML -->
.nav {
  display: flex;
  list-style: none;
}

.nav-item {
  position: relative;
}

.dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  list-style: none;
  display: none;
  background-color: white;
  border: 1px solid #ccc;
}

.nav-item:hover .dropdown {
  display: block;
}
/* CSS */

この例では、マウスを.nav-item要素の上に置くと、.dropdown要素が表示されます。

●ステップ7:絶対位置の注意点と対処法

絶対位置を使う際に注意すべきポイントとして、絶対位置要素が文書のフローから外れるため、他の要素との間隔や配置が崩れることがあります。

対処法として、絶対位置要素の親要素に適切なpaddingmarginを設定することで、間隔を調整できます。

.parent {
  position: relative;
  padding-bottom: 50px;
}

.box {
  position: absolute;
  bottom: 0;
  left: 0;
}

この例では、.parent要素の下に.box要素を配置し、他の要素との間隔を確保しています。

まとめ

この記事では、CSS絶対位置を完全に理解して使いこなすための7つのステップを解説しました。

絶対位置の基本から応用例、注意点と対処法まで、初心者の方でも理解しやすい内容となっています。

これで、あなたもCSS絶対位置のプロになれるでしょう!

今後のWebページ作成がさらに楽しく、魅力的になることを祈っています。