カード内にカードを表示する方法【HTML/CSS・サンプルコード付き】

カードUI

カード内にカードを表示する方法

カード内にカードを表示する方法を紹介します。このサンプルでは、外側のカードの中へ別のカードを配置し、関連する情報や補足内容をひとつのカード内で分けて表示します。商品情報の補足、プロフィールの詳細、サービス内容、設定項目など、情報を階層ごとに整理したい場面で利用できます。

HTMLでは外側のカード内に内側のカードを配置して入れ子構造を作成し、CSSではそれぞれに異なる背景色や枠線、余白、角丸を設定しています。内側のカードを薄い青色で表示することで、外側の内容と区別しやすいデザインにしています。

外側と内側のカードに表示するタイトルや文章のほか、横幅、余白、背景色、枠線、角丸、影、文字サイズなどを変更できます。JavaScriptを使用せず、HTMLとCSSだけで実装できます。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

外側のカード

カードの中へ、さらに別のカードを配置できます。

内側のカード

補足情報や関連する内容を、ひとつのカード内で分けて表示できます。

外側のカード内に別のカードを配置した、入れ子構造のカードUIを確認できます。

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">
<head>

  <!-- 文字コードを指定 -->
  <meta charset="UTF-8">

  <!-- スマートフォンやタブレットで画面幅に合わせて表示 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ページタイトル -->
  <title>カード内にカードを表示する</title>

  <!-- CSSファイルを読み込み -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!-- 外側のカード -->
  <div class="card-in-card_card">

    <!-- 外側のカードタイトル -->
    <div class="card-in-card_title">
      外側のカード
    </div>

    <!-- 外側のカード説明文 -->
    <p class="card-in-card_text">
      カードの中へ、さらに別のカードを配置できます。
    </p>

    <!-- 外側のカード内へ配置する内側のカード -->
    <div class="card-in-card_inner">

      <!-- 内側のカードタイトル -->
      <div class="card-in-card_inner-title">
        内側のカード
      </div>

      <!-- 内側のカード説明文 -->
      <p class="card-in-card_inner-text">
        補足情報や関連する内容を、ひとつのカード内で分けて表示できます。
      </p>

    </div>

  </div>

</body>
</html>
コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。

ファイル構成と設置方法

このサンプルはHTMLとCSSの2ファイルで構成されています。HTMLでは外側のカードの中へ内側のカードを配置し、入れ子構造のカードUIを作成します。CSSでは外側と内側それぞれの横幅、余白、背景色、枠線、角丸、文字サイズなどを設定し、2つのカードを見分けやすいデザインにしています。

sample/
├── index.html
└── style.css

各ファイルの役割
index.htmlはカード全体を構成するファイルです。「外側のカード」のタイトルと説明文、その中へ配置する「内側のカード」のタイトルと説明文を変更できます。内側のカードは外側のカード内へ直接配置されているため、補足情報や関連する内容をひとつのまとまりとして表示できます。

style.cssは外側と内側のカードのデザインを設定するファイルです。外側のカードでは最大横幅、余白、枠線、角丸、背景色、影などを設定し、内側のカードでは別の背景色や枠線を指定しています。タイトルや説明文の文字サイズ、文字色、行間もそれぞれ変更できます。

設置方法・使い方
sampleフォルダへindex.htmlとstyle.cssを同じ階層で配置します。2つのファイルを保存したあと、sample/index.htmlをブラウザで開いてください。外側のカードの中に、薄い青色の内側カードが表示されます。JavaScriptや外部ライブラリは使用しないため、HTMLとCSSだけで表示できます。

カスタマイズできる内容
index.htmlでは「外側のカード」「内側のカード」のタイトルと、それぞれの説明文を変更できます。商品情報の補足、サービス内容、プロフィール詳細、注意事項など、外側の情報に関連する内容を内側のカードへ表示できます。

style.cssでは外側のカードの最大横幅、内側余白、枠線、角丸、背景色、影を変更できます。内側のカードについても余白、背景色、枠線、角丸を調整でき、外側と内側のタイトルや説明文の文字サイズ、文字色、行間も変更できます。

数値調整
style.css
padding:40px 20px;
ページ全体の余白です。上下40px・左右20pxを指定しています。値を大きくすると画面端との間隔が広がり、小さくすると狭くなります。

max-width:460px;
外側のカードの最大横幅です。値を大きくするとカードが横に広がり、小さくするとコンパクトになります。

padding:28px;
外側のカードの内側余白です。値を大きくすると文字や内側カードとカード端との間隔が広がります。

border:1px solid #dbe3ec;
外側のカードの枠線です。1pxを大きくすると枠線が太くなります。

border-radius:14px;
外側のカードの角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

box-shadow:0 12px 28px rgba(15,23,42,.08);
外側のカードの影です。12pxは縦方向の位置、28pxはぼかしの広がりを表します。値を変更すると影の見え方が変わります。

margin:0 0 12px;
外側のカードタイトル下側の余白です。12pxを大きくすると説明文との間隔が広がります。

font-size:22px;
外側のカードタイトルの文字サイズです。値を大きくすると文字が大きくなります。

line-height:1.5;
外側のカードタイトルの行間です。値を大きくすると行間が広がります。

margin:0 0 20px;
外側の説明文下側の余白です。20pxを大きくすると内側カードとの間隔が広がります。

font-size:16px;
外側の説明文の文字サイズです。値を大きくすると文字が大きくなります。

line-height:1.8;
外側と内側の説明文の行間です。値を大きくすると行間が広がり、小さくすると詰まった表示になります。

padding:20px;
内側のカードの内側余白です。値を大きくすると内容とカード端との間隔が広がります。

border:1px solid #bfdbfe;
内側のカードの枠線です。1pxを大きくすると枠線が太くなります。

border-radius:12px;
内側のカードの角丸です。値を大きくすると丸みが強くなります。

margin:0 0 8px;
内側のカードタイトル下側の余白です。8pxを大きくすると説明文との間隔が広がります。

font-size:18px;
内側のカードタイトルの文字サイズです。値を大きくするとタイトルが大きくなります。

font-size:15px;
内側のカード説明文の文字サイズです。値を大きくすると説明文が大きくなります。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%max-width:460pxによって、外側のカードが画面幅に合わせて縮小されます。また、画面幅640px以下では外側のカードをpadding:24px 20px;、内側のカードをpadding:18px;へ変更して余白を小さくしています。スマートフォン・タブレット・PCで利用できます。


こちらもおすすめ


コメント