LoginSignup
3
2

Bootstrap5でCardsを利用して画像や文字を重ねる方法

Last updated at Posted at 2022-03-18

はじめに

備忘録
Bootstrap5で画像や文字を重ねる方法の一例です。
こんな風にもできるんだなーくらいに思ってください。
どなたかのお役に立てれば幸いです。

実装方法

Cardsの「card-img-overlay」を使います。
cardクラスの中身に「card-img-overlayのみ」を書くことによって背景に設定した色をそのまま表示することができます。
リファレンスには、

コンテンツは画像の高さを超えないようにしてください。もしコンテンツが画像より大きい場合、画像をはみだしてコンテンツが表示されます。
とあるので、これを逆手に取ります。
つまりcardクラスは使いますが、card-img-overlayがわざとcardの範囲をはみ出すようにすることで、自由にレイアウトができるようにしています。
また、cardクラスと一緒にborder-0クラスを指定することで、cardクラスに初期設定されている囲いの線を消すことができます。

<div class="card border-0">
   <div class="card-img-overlay">
      <div class="row">
         <div class="col">
            <p>card-img-overlayの中でrowを使うこともできるし</p>
         </div>
         <img src="foo.png" class="col" alt="foo">
      </div>
      <div class="card-img-overlay">
         <p>card-img-overlayをもう1回使うこともできる</p>
         <img src="hoge.png" class="" alt="hoge">
      </div>
   </div>
</div>

この例では、重ねたい画像や文字の下にコンテンツが何もない状態を想定しています。
もし下にコンテンツを配置したい場合は、

  • 初めのcard-img-overlayの中(<div class="row">や2つ目の<div class="card-img-overlay">と同じ階層)にHTMLを記述していく
    または
  • 下に配置するコンテンツに、cardの大きさ分のmargin-topやpadding-topを設定する
    ことで解決できます。

参照

ブログもあります

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2