MENU
  • ブログ用語集(ガイド)
  • ブログ運営基礎知識
  • SEOノウハウ
  • ブログ収益化
  • WordPress
  • Webデザイン
  • PC
  • サービス一覧
  • 無料相談
セオリコ
  • ブログ用語集
  • 記事一覧
    • ブログ基礎知識
      • ブログ基礎知識
      • ブログの書き方
      • サーバー関連
    • ブログ収益化
      • Google AdSense
    • SEO
    • Webデザイン
      • CSSデザイン
    • WordPress
      • WordPress エラー修正方法まとめ
      • WordPressテーマ
      • WordPressプラグイン
      • ブログカスタマイズ
    • PC関連
      • OS・ソフトウェア
      • ハードウェア
  • サービス一覧
    • ブログ個別サポート(コンサルティング)
    • サイト診断(Google AdSense 審査対策)
    • Search Console データ分析
    • WordPress エラー修復
    • Link Map Insights
  • 無料相談
セオリコ
  • ブログ用語集
  • 記事一覧
    • ブログ基礎知識
      • ブログ基礎知識
      • ブログの書き方
      • サーバー関連
    • ブログ収益化
      • Google AdSense
    • SEO
    • Webデザイン
      • CSSデザイン
    • WordPress
      • WordPress エラー修正方法まとめ
      • WordPressテーマ
      • WordPressプラグイン
      • ブログカスタマイズ
    • PC関連
      • OS・ソフトウェア
      • ハードウェア
  • サービス一覧
    • ブログ個別サポート(コンサルティング)
    • サイト診断(Google AdSense 審査対策)
    • Search Console データ分析
    • WordPress エラー修復
    • Link Map Insights
  • 無料相談

CSS「position:relative」と「position:absolute」で画像や文字を重ねる方法

2024 9/19
CSSデザイン
2024/09/19

CSS の position プロパティの使い方を覚えると、画像と画像を重ねる、画像と文字を重ねる、というのが簡単にできるようになります。

画像編集ツールで加工してもよいのですが、CSS で表現すると画像の上に表示されているテキストを検索エンジンが認識してくれるので SEO 効果が期待できる、というメリットがありますね。

それでは position:relative と position:absolute の使い方を見ていきましょう。

目次

position プロパティの使い方基本

positon プロパティで聞いたことがあるのは「相対配置」と「絶対配置」という言葉だと思います。

何となくイメージはできるものの、検索して解説を読んでもイマイチわからず…という状態ではないでしょうか。

position プロパティで使える値をおさらいしておきましょう。

static配置方法を指定しない
relative相対位置への配置
absolute絶対位置への配置
fixedスクロールしても固定される配置
stickyスクロールに追従して固定される配置

今回使うのは position:relative と position:absolute ですが、面倒なことは忘れてかまいません。

「画像や文字を重ねるときは relative + absolute」ということだけ頭の片隅に入れておいてください。

「画像と画像を重ねる方法」「画像と文字を重ねる方法」の 2 パターンをサンプル付きでご紹介します。習うより慣れろで、コピペしていろいろ試していくうちに使いこなせるようになりますよ。

画像と画像を重ねる方法

CSS で画像と画像を重ねる方法から解説していきます。

完成形は以下のイメージ。

地球 ピンクのロボット

「月(300px × 300px)」と「ピンクのロボット」は別々の画像で、CSS で重ねています。

HTML コードの基本形

HTML の基本形はシンプルです。

<div class="relative">
  <img src="./image/base.jpg" alt="" />
  <img src="./image/point.png" alt="" class="absolute" />
</div>

親要素 <div> の中に 2 つの子要素 <img> を入れています。

class 名はお好みでつけてください。ここではわかりやすく positon の値としました。

配置場所を何も指定しないと、画像が 2 つ並ぶだけで重なりません。

地球 ピンクのロボット

ピンクのロボットに CSS の position で立ち位置を教えてあげましょう。

CSS で position を指定する

親要素 <div> に relative を指定し、子要素 <img> のうち上に重ねる画像(ここでは point.png を動かします)に absolute を指定します。

.relative {
    position: relative;
}
.absolute {
    position: absolute;
}

これで、ピンクのロボットは親要素 <div> の範囲内でしか動けなくなりました。

absolute で位置を指定する

つづいて、ピンクのロボットの位置を指定します。

absolute の位置指定は下のプロパティを使います。どれかひとつでもよいですし、複数指定してもかまいません。

top上からの距離を指定
right右からの距離を指定
bottom下からの距離を指定
left左からの距離を指定

サンプルのように右下を基準とするときは、「right」と「bottom」を指定しましょう。「右から 30px 」「下から 30px 」という指定になります。

.relative {
    position: relative;
}
.absolute {
    position: absolute;
    right: 30px;
    bottom: 30px;
}

でも、この指定だけでは、画面幅の広いタブレットや PC だとロボットがベース画像にうまく重なりません。親要素の幅を指定していないのが原因です。

地球 ピンクのロボット

ご利用されているテーマやテンプレートで <div> に何らかの指定がされている場合があります。

親要素のサイズを指定する

親要素 <div> にベースの画像と同じ幅 300px を指定しておきましょう。以下が HTML と CSS の最終形となります。

<div class="relative">
  <img src="./image/base.jpg" alt="" />
  <img src="./image/point.png" alt="" class="absolute" />
</div>
.relative {
    position: relative;
    width: 300px;
}
.absolute {
    position: absolute;
    right: 30px;
    bottom: 30px;
}

これで、ピンクのロボットは親要素の幅 300px 以内でしか動けなくなります。

地球 ピンクのロボット

要素を重ねるポイントは以下の 2 点です。

  • ベースとなる親要素に relative を指定する
  • 重ねたい子要素に absolute を指定する

どこを変えるとどうなるのか、値をいろいろ調整して試してみてください。

画像と文字を重ねる方法

では次に、CSS で画像と文字を重ねる方法を見ていきましょう。

基本的な考え方は画像+画像と同じで、コードの基本形はこのようになります。

<div class="relative">
  <img src="./image/base.jpg" alt="" />
  <p class="absolute">ここに重ねる文字</p>
</div>

absolute で動かす要素が <img> から <p> に変わっただけです。

このままでも使えますが、ここでは <figure> タグを使ってみたいと思います。

figure タグとは

<figure> は HTML5 から新たに追加されたタグで「図表である」という意味を持ちます。仕様を見ると “メインフローから参照されるうんたらかんたら” とあってよくわかりませんね…。

figure-HTML5タグリファレンス

あまり厳密に考えなくてよいと思いますが、要するに 記事内で使う挿絵や図に使いましょう ということですね。

<figcaption> で注釈(コメント)をつけられるので、この注釈を画像に重ねてみたいと思います。

HTML コードの基本形

コード自体はシンプルで、親要素 <figure> の中に、<img> と <figcaption> を入れます。

<figure class="relative">
  <img src="./image/base.jpg" alt="" />
  <figcaption class="absolute"><p>CSS で画像と文字を重ねることができます!</p></figcaption>
</figure>

CSS コードの基本形

CSS の配置指定も先ほどと変わらず、親要素 <figure> に relative を、画像の上に重ねる <figcaption> に absolute を指定します。

relative {
    position: relative;
}
.absolute {
    position: absolute;
}

absolute で位置を指定する

画像+画像と同じく、注釈の位置を指定して動かしてあげましょう。

<figure> にベース画像と同じ幅 600px を指定し、<figcaption> は下から 80px の位置とします。

.relative {
    position: relative;
    width: 600px;
}
.absolute {
    position: absolute;
    bottom: 80px;
}
積み上げられた本
CSS で画像と文字を重ねることができます!

上に重ねる文字を黒背景+白文字にする

ただ重ねただけでは文字が読みづらいので、黒背景+白文字に装飾します。

.relative {
    position: relative;
    width: 600px;
}
.absolute {
    position: absolute;
    bottom: 80px;
    color: #fff;
    background: #000;
}
積み上げられた本
CSS で画像と文字を重ねることができます!

上に重ねる文字の背景を透過させて整える

バランスが悪いので幅を揃えて背景色は透過させてみましょう。<p> のフォントサイズや余白も調整します。

.relative {
    position: relative;
    width: 600px;
}
.absolute {
    position: absolute;
    bottom: 80px;
    color: #fff;
    background: rgba(0,0,0,.6);
    width: 100%;
    max-width: 600px;
    padding: 1em 0;
}
.absolute p {
    margin: 0;
    padding: 0 0.8em;
    font-size: 150%;
    text-align: center;
}
積み上げられた本
CSS で画像と文字を重ねることができます!

完成!

まとめ

以上、position:relative と position:absolute を使った最もシンプルな形をご紹介しました。

それぞれの画像やテキストにリンクをつけることもできますし、CSS で角度をつけたり透明度を変えたりするなどいろいろな応用ができると思います。

画像と文字の重ね合わせは関連記事一覧などでよく使われているので、基本形を参考にいろいろアレンジしてみてください。

1冊ですべて身につくHTML & CSSとWebデザイン入門講座
¥2,486 (2023/10/25 15:23時点 | Amazon調べ)
口コミを見る
Amazon
\ポイント最大11倍!/
楽天市場
Yahoo!
ポチップ
CSSデザイン

著者

SEO コンサルタント 瀬尾

瀬尾 真

SEO コンサルタント

Web 歴 20 年以上の SEO コンサルタント。ライティング業務ほか、サイト制作・コンテンツ販売・メディア運営代行業務を行っています。当サイト(セオリコ)では、おもにブログ初心者向けのノウハウを配信。

ココナラでは WordPress エラー修正やハッキング修復、Search Console 分析サービスをご提供しています(年間400件以上対応)。

X (Twitter)
ココナラ
マシュマロ
お問い合わせ

関連記事

  • 書類を読む
    行間とフォントサイズを CSS で調整して読みやすいデザインにしよう
  • CSS
    デザインが反映されない! CSS が効かない原因と優先順位チェック
  • 蛍光ペン
    強調文字 strong をちょっとおしゃれにする CSS デザインサンプル
  • CSSで作るおしゃれな区切り線
    おしゃれな区切り線(ボーダー・罫線)にする CSS デザインサンプル
  • del タグ
    打ち消し線もおしゃれにカスタマイズ!del タグの CSS デザインサンプル
  • リンクデザイン
    アンカーテキスト(テキストリンク)の CSS デザインサンプル
  • CSS で作るおしゃれなボックス(枠線・囲み枠)のデザインサンプル 13 選
  1. セオリコ
  2. Webデザイン
  3. CSSデザイン
  4. CSS「position:relative」と「position:absolute」で画像や文字を重ねる方法
Category
  • ブログ運営法
  • ブログ収益化
  • SEO
  • Webデザイン
  • WordPress
  • PC
Service
  • ブログ個別サポート
  • Google AdSense 審査対策
  • WordPress エラー修復
  • Search Console 分析
WordPress Plugin
  • Link Map Insights
Information
  • ブログ用語集(ガイド)
  • お問い合わせ
  • サイトマップ
  • セオリコ運営者情報
  • コンテンツポリシー
  • プライバシーポリシー
  • X (@seoryco)

© seoryco.

  • お問い合わせ
  • サービス一覧
  • 検索
  • 目次
  • トップへ
目次