CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

ブートストラップカードコンポーネント

ブートストラップカード

Bootstrapカードは最も人気のあるコンポーネントの1つであり、それには十分な理由があります。これらは非常に柔軟なメディアコンテナとして機能し、いくつかの優れたプリセットスタイルとフォーマットを備えています。

カードのコンテンツには、テキスト、画像、リンク、ボタン、リストなどがあり、ヘッダーとフッターを含めることもできます。

ブートストラップカードの基本

ブートストラップカードはフレックスボックスで作成され、デフォルトで含まれている要素の幅まで拡張されます。別の幅を指定する場合は、カード要素自体でBootstrapのwidthユーティリティクラスを使用するか、カードを含む要素でラップして、Bootstrapの列クラスでサイズを変更できます。

いくつかの例を見てみましょう:

<div class="container-fluid bg-light">
      <div class="card p-4 m-4">card 1</div>
      <div class="card p-4 m-4">card 2</div>
      <div class="card p-4 m-4">card 3</div>
 
      <div class="card-group m-4">
        <div class="card p-4">card 4</div>
        <div class="card p-4">card 5</div>
        <div class="card p-4">card 6</div>
      </div>
 
      <div class="card-deck m-4">
        <div class="card p-4 m-4">card 7</div>
        <div class="card p-4 m-4">card 8</div>
        <div class="card p-4 m-4">card 9</div>
      </div>
    </div>

Bootstrapの経験則は、内のすべてをCONTAINER要素でラップすることです。これにより、内のすべてが応答性になります。

つまり、現在の画面サイズに応じてサイズとレイアウトがシフトします。

この例では、要素を全幅にするCONTAINER-FLUIDを使用しましたが、水平方向のマージンを追加してページの中央に配置するCONTAINERだけを使用しました。

次に、3枚のカードの最初のセットがあります。コンテナ以外に親要素がないため、デフォルトのカード動作があり、スクリーンショットに示すように上から下に配置されます。

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

ブートストラップカードコンポーネント

コードスニペットに表示されるp-4とm-4は、それぞれ1.5 remのすべての側のパディングと、1.5remのすべての側のマージンを表しています。

ブートストラップサイジングユーティリティの値:


0 =0 rem;

1 =0.25 rem;

2 =0.5 rem;

3=1レム;

4 =1.5 rem;

5=3レム;

次に、CARD-GROUPクラスで

にラップされたカード4、5、および6があります。これらは、BTN-GROUPクラスとまったく同じように動作します。それらは水平フレックスボックスレイアウトで結合され、丸みを帯びた境界線がグループ全体に追加されます。

最後に、カード7、8、および9は、CARD-DECKクラスを使用して

でラップされます。このクラスは、水平フレックスボックスでそれらを結合しますが、視覚的には別々の要素として残します。

カードのサイズを手動で変更する

手動サイズのカードを作成する前に、Bootstrapのレイアウトとブレークポイントシステムについて少し学びましょう。

ブートストラップ列

Bootstrapは、レイアウト開発を容易にするためにページを12列に分割します。

これを視覚化するための簡単なデモは次のとおりです。

<div class="row">
        <div class="col border p-5">column 1</div>
        <div class="col border p-5">column 2</div>
        <div class="col border p-5">column 3</div>
        <div class="col border p-5">column 4</div>
        <div class="col border p-5">column 5</div>
        <div class="col border p-5">column 6</div>
        <div class="col border p-5">column 7</div>
        <div class="col border p-5">column 8</div>
        <div class="col border p-5">column 9</div>
        <div class="col border p-5">column 10</div>
        <div class="col border p-5">column 11</div>
        <div class="col border p-5">column 12</div>
      </div>

まず、ROWと呼ばれる列のラッパーがあります。これは、列のフレックスボックスコンテナにすぎません。要素のサイズを宣言するには、COL-SCREEN SIZE BREAKPOINT-NUMBER OF COLUMNSTOOCCUPYと記述します。

上記の例では、画面のサイズに関係なくこのサイズ設定が必要なため、ブレークポイントを指定しませんでした。省略すると、デフォルトでCOL-1になり、自然な12列が得られるため、列数はありません。外観は次のとおりです。

ブートストラップカードコンポーネント

ブートストラップブレークポイント:

Bootstrapはモバイルファーストのフレームワークです。つまり、Bootstrapを使用して開発する場合は、モバイルレイアウトを優先し、上向きに作業します。そのすべてのクラスは、提供されたブレークポイント以降の要素に影響を与えます。

極小がデフォルトであるため、たとえばP-4のようにブレークポイントを完全に省略することは、XS画面サイズおよびすべての大きいサイズに適用されるP-XS-4を記述することと同じです。

ブートストラップカードコンポーネント

つまり、すべての画面で有効なルールが必要な場合は、ブレークポイントを省略してください。

例のパディングを中画面サイズ以上から0.5remに減らしたい場合は、同じ要素にP-MD-2クラスを追加します。

ブートストラップカードコンポーネント

ブレークポイントピクセル値:

  • xs –画面サイズが576ピクセル未満。これがデフォルトです。
  • sm –576ピクセル以上の画面サイズ。
  • md –768ピクセル以上の画面サイズ。
  • lg –992ピクセル以上の画面サイズ。
  • xl –1200ピクセル以上の画面サイズ。

次に、これを使用して、画面サイズに応じてレイアウトを変更しましょう。

<div class="row">
        <div class="col-5 col-md-7">
          <div class="card p-4">left column card</div>
          <div class="card p-4">left column card</div>
          <div class="card p-4">left column card</div>
          <div class="card p-4">left column card</div>
        </div>
        <div class="col-7 col-md-5">
          <div class="card p-4">right column card</div>
          <div class="card p-4">right column card</div>
          <div class="card p-4">right column card</div>
          <div class="card p-4">right column card</div>
        </div>
      </div>
>

ここでも、ROWラッパーがあり、

がCOL-5 COL-MD-7に設定されています。これは、最小画面サイズ以上で5列を占めることを意味しますが、中画面サイズに達するとすぐに、7列に変更されます。その後、逆のCOL-7 COL-MD-5の
があり、両方とも数枚のカードで埋められています。スクリーンショットの画面サイズを取得したので、画面サイズがどのように変化するかを確認できます。

ブートストラップカードコンポーネント

幅767ピクセル、左側の

は5列幅、右側は7列です。

1ピクセル上がって768になり、反対に変わります:

ブートストラップカードコンポーネント

カードサブコンポーネント

カードのすべてのサブコンポーネントを試して、カードの能力を最大限に活用しましょう。

ヘッダーとフッター付きのカード

<div class="card">
            <div class="card-header text-center p-4">I'm a header</div>
            <div class="card-body">
              <p class="card-text">
                first paragraph
              </p>
              <p class="card-text">
                second paragraph
              </p>
              <a href="#" class="card-link">Link 1</a>
              <a href="#" class="card-link">Link 2</a>
              <a href="#" class="card-link">Link 3</a>
            </div>
            <div class="card-footer">
              Footer of a Bootstrap card
            </div>
          </div>

中央にカードヘッダーがあり、境界線と明るい灰色の背景があり、その下にカード本体があり、パディングが行われているカードを作成しました。

本文には、位置合わせのためにCARD-TEXTを使用した段落と、CARD-LINKを使用したリンクがいくつかあるため、青色で並べて配置されています。

最後に、ヘッダーと同じスタイルのカードフッターを作成しましたが、今回はテキストを中央に配置しませんでした。

ブートストラップカードコンポーネント

イメージキャップ付きカード

今回は、カードに画像のキャップを追加し、カードの本文にタイトルとサブタイトルを追加し、リストアイテムとしてリンクを含むリストグループを追加します。

<div class="card">
            <img
              src="https://via.placeholder.com/100"
              alt=""
              class="card-img-top"
            />
            <div class="card-body">
              <h3 class="card-title">card title in the card's body</h3>
              <h4 class="card-subtitle mb-4">card subtitle</h4>
 
              <p>list group with links inside:</p>
              <ul class="list-group">
                <li class="list-group-item">
                  <a href="#" class="card-link">List link 1</a>
                </li>
                <li class="list-group-item">
                  <a href="#" class="card-link">List link 2</a>
                </li>
                <li class="list-group-item">
                  <a href="#" class="card-link">List link 3</a>
                </li>
              </ul>
            </div>
          </div>

プレースホルダーと呼ばれる便利な画像用ツールを使用しています。最後の数字は画像のピクセル幅x高さですが、CARD-IMG-TOPが画像をカードの全幅に拡大(または縮小)するため、ここでは無視されます。タイトルとサブタイトルはいくつかの優れたフォーマットになっています。パディングとマージンには、Bootstrapのオリエンテーションユーティリティの1つを使用しました。サブタイトルに表示されているMB-4は、マージンボトムを表しています。

ブートストラップのパディングとマージンの向き:
  • pt / mt –パディング/マージントップ
  • pb / mb –パディング/マージンボトム
  • pl / ml –パディング/マージン左
  • pr / mr –パディング/マージン右
  • py / my –パディング/マージンy軸(上下)
  • px / mx –パディング/マージンx軸(左と右)

次に、リストとその個々の要素を明るい丸い境界線でカプセル化するリストグループがあります。結果は次のとおりです。

ブートストラップカードコンポーネント

下部の画像キャップ

ブートストラップにはCARD-IMG-BOTTOMはありませんが、カードの下部にdivを作成し、その中にブートストラップカードコンポーネント

<div class="card">
            <div class="card-body">
              <p class="card-text">
                Lorem, ipsum dolor sit amet consectetur adipisicing elit. Quas
                unde corporis sed nam ad eius, pariatur, consectetur modi
                asperiores dolorem id quaerat eos quod nesciunt repudiandae aut
                temporibus rerum possimus.
              </p>
            </div>
            <img
              src="https://via.placeholder.com/100"
              alt=""
              class="card-img-top"
            />
          </div>

また、古き良きloremipsumを追加しました。

ブートストラップカードコンポーネント

サイドイメージキャップ

カードの内側にROWラッパーを追加して水平にレイアウトし、COLを使用して画像とカードの残りの部分のサイズを定義することで、水平にすることもできます。

<div class="card">
            <div class="row">
              <img
                src="https://via.placeholder.com/100"
                alt=""
                class="card-img-top col-6"
              />
              <div class="card-body col-6">
                <h3 class="card-title">card title in the card's body</h3>
                <h4 class="card-subtitle mb-4">card subtitle</h4>
 
                <p>list group with links inside:</p>
                <ul class="list-group">
                  <li class="list-group-item">
                    <a href="#" class="card-link">List link 1</a>
                  </li>
                  <li class="list-group-item">
                    <a href="#" class="card-link">List link 2</a>
                  </li>
                  <li class="list-group-item">
                    <a href="#" class="card-link">List link 3</a>
                  </li>
                </ul>
              </div>
            </div>
          </div>

カードのすべての内容を

でラップしました

画像とカード本体の両方にCOL-6を追加して、カードを50-50にしました。

ブートストラップカードコンポーネント

背景としてのカード画像

カード全体に画像を拡大して、テキスト、リスト、リンクなどを重ねることもできます。これを行うには、にCARD-IMGのクラスを指定し、それ以外のすべてをCARD-IMG-OVERLAYクラスの

に配置します。その中で、必要に応じて要素を構成します。

<div class="card">
            <img
              src="https://via.placeholder.com/100"
              alt=""
              class="card-img"
            />
            <div class="card-img-overlay">
              <h4 class="card-title">Overlay Title</h4>
              <p class="card-text">
                Image text overlay
              </p>
              <p>second paragraph</p>
              <p>third paragraph</p>
              <p>fourth paragraph</p>
              <div class="btn-group w-100">
                <button class="btn btn-primary">blue</button>
                <button class="btn btn-info">teal</button>
                <button class="btn btn-danger">red</button>
                <button class="btn btn-dark">black</button>
                <button class="btn btn-success">green</button>
              </div>
            </div>
          </div>

ここでは、widthユーティリティを初めて使用しました。 BTN-GROUPのW-100。

ブートストラップの幅と高さのユーティリティ:
ブートストラップカードコンポーネント

w / h-25/50/75/100 –幅/高さ25%/ 50%/ 75%/ 100%

私たちの場合、100%マイナスCARD-BODYが適用するのと同じパディングを差し引いたもので、ここではCARD-IMG-OVERLAYによって適用されます。

カード列

カードを列に配置して最初に上から下に配置し、列がいっぱいになったときにのみ新しいカードから開始するようにするこのオプションもあります。

<div class="card-columns">
        <div class="card">
          <h3 class="card-title text-center p-2">Title of card 1</h3>
          <div class="card-body">
            <p class="card-text">
              Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquam,
              rerum excepturi voluptate...
            </p>
          </div>
        </div>
        <div class="card">
          <h3 class="card-title text-center p-2">Title of card 2</h3>
          <div class="card-body">
            <p class="card-text">
              Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquam,
              rerum excepturi voluptate...
            </p>
          </div>
        </div>
        <div class="card">
          <h3 class="card-title text-center p-2">Title of card 3</h3>
          <div class="card-body">
            <p class="card-text">
              Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquam,
              rerum excepturi voluptate...
            </p>
          </div>
        </div>
        <div class="card">
          <h3 class="card-title text-center p-2">Title of card 4</h3>
          <div class="card-body">
            <p class="card-text">
              Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquam,
              rerum excepturi voluptate...
            </p>
          </div>
        </div>
      </div>

すべてのカードをでラップするだけで、次のようになります。

ブートストラップカードコンポーネント

ブートストラップカードのスタイリング

ブートストラップカードのスタイリングに関しては、背景とテキストの色、および境界線の色と外観を変更できます。

スタイルは、カード全体、個別のサブコンポーネント、またはその両方に適用できます。チェックアウトするスタイルのカードは次のとおりです。

<div class="card bg-primary">
          <div class="card-header"><h3>Header 1</h3></div>
          <div class="card-body">
            <p>Body 1</p>
          </div>
          <div class="card-footer"><p>Footer 1</p></div>
        </div>
        <div class="card bg-success text-white">
          <div class="card-header"><h3>Header 2</h3></div>
          <div class="card-body">
            <p>Body 2</p>
          </div>
          <div class="card-footer text-danger"><p>Footer 2</p></div>
        </div>
        <div class="card bg-info text-dark border-danger">
          <div class="card-header"><h3>Header 3</h3></div>
          <div class="card-body">
            <p>Body 3</p>
          </div>
          <div class="card-footer"><p>Footer 3</p></div>
        </div>
        <div class="card border-primary bg-dark text-white">
          <div class="card-header border-success"><h3>Header 4</h3></div>
          <div class="card-body text-danger">
            <p>Body 4</p>
          </div>
          <div class="card-footer bg-warning text-info"><p>Footer 4</p></div>
        </div>

最初のカードは、カード自体に青い背景(BG-PRIMARY)があり、カード全体をスタイリングしています。

2番目のカードは、カード全体に緑色の背景(BG-SUCCESS)と白色のテキスト(TEXT-WHITE)がありますが、フッターに赤色のテキスト(TEXT-DANGER)があり、親要素のTEXT-WHITEを上書きしています。

3番目のカードには、背景が濃い青(BG-INFO)、テキストが黒(TEXT-DARK)、境界線が赤(BORDER-DANGER)です。

最後に、4番目のカードには、カード全体に青い境界線(BORDER-PRIMARY)、黒い背景(BG-DARK)、および白いテキスト(TEXT-WHITE)があります。

ヘッダーに緑色の境界線(BORDER-SUCCESS)、本文に赤色のテキスト(TEXT-DANGER)、フッターに黄色の背景(BG-WARNING)と濃い青色のテキスト(TEXT-INFO)。

レインボーカードは次のようになります。

ブートストラップカードコンポーネント

要約する

Bootstrapカードは、多くのオプションを備えた非常に強力なコンポーネントです。それらは、分離されたまとまりのある全体を表すカードデッキにグループ化することも、単一のエンティティに融合するカードグループにグループ化することもできます。それらは、一列に広げたり、カードの列に広げて別の外観にすることができます。

画像、リスト、リンクをすべてさまざまなレイアウトでホストできます。

また、独自のヘッダーとフッターを設定することもできます。これらはすべてプリセットのスタイルとフォーマットを備えていますが、カスタマイズすることもできます。

これらは非常に柔軟性があり、以前のセットアップがほとんどなく、短時間でBootstrapを使用してどれだけ達成できるかを示す最良の例の1つです。


  1. フレックスボックスを使用した高度なCSSレイアウト

    CSS3は、一般にFlexboxと呼ばれるレイアウトモードのFlexibleBoxを提供します。 Flexbox(フレキシブルボックス)はCSS3のレイアウトモードです。このモードを使用すると、複雑なアプリケーションやWebページのレイアウトを簡単に作成できます。コンテナ、フレックスアイテムなどが含まれます。コンテナには次のプロパティがあります- フレックス方向 フレックスラップ フレックスフロー justify-content 整列アイテム align-content 以下は、flexboxを使用した高度なCSSレイアウトのコードです- 例 &l

  2. CSS3フレキシブルボックスレイアウト

    CSS3は、一般にFlexboxと呼ばれるレイアウトモードのFlexibleBoxを提供します。 Flexbox(フレキシブルボックス)はCSS3のレイアウトモードです。このモードを使用すると、複雑なアプリケーションやWebページのレイアウトを簡単に作成できます。コンテナ、フレックスアイテムなどが含まれます。コンテナには次のプロパティがあります- フレックス方向 フレックスラップ フレックスフロー justify-content 整列アイテム align-content 以下は、CSS3-を使用して柔軟なレイアウトを表示するコードです。 例 <