カードを横並びにする基本的なFlexboxの使い方【HTML/CSS・サンプルコード付き】

Flexbox

カードを横並びにする基本的なFlexboxの使い方

カードを横並びにする基本的なFlexboxの使い方を紹介します。このサンプルでは、HTMLで3枚のカードを作成し、CSSのdisplay:flex;を指定して横方向へ並べます。カード同士の間隔にはgapを使用し、それぞれのカードへ同じ割合の横幅を割り当てる基本的なFlexboxレイアウトです。

サービス紹介、商品一覧、機能説明、ブログ記事一覧、管理画面の情報カードなど、複数の内容を横並びで見せたい場面に利用できます。カードを1つずつ個別に配置する必要がなく、親要素へFlexboxを指定するだけで整った横並びを作れるため、レイアウトを管理しやすい点もメリットです。

カードの見出しや説明文はHTMLから変更でき、CSSではカード同士の間隔、横幅、余白、背景色、枠線、角丸、影などを調整できます。画面幅640px以下ではカードを縦並びへ切り替えるため、スマートフォン・タブレット・PCで利用しやすく、Flexboxの基本的な使い方を確認できるサンプルです。

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

デモ

サービス紹介

Flexboxを使用して3枚のカードを横並びにしています。

サービス1

サービスの特徴や内容を簡潔に紹介するカードです。

サービス2

カード同士の間隔はgapプロパティで設定しています。

サービス3

各カードには同じ割合の横幅を指定しています。

3枚のカードがFlexboxで横並びになります。画面幅640px以下では縦並びへ切り替わります。

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

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

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

  <!-- スマートフォン対応 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ページタイトル -->
  <title>カードを横並びにする基本的なFlexboxの使い方</title>

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

</head>
<body>

  <!-- カード全体 -->
  <div class="basic-flexbox">

    <!-- カード1 -->
    <div class="basic-flexbox_card">

      <div class="basic-flexbox_card-title">
        サービス1
      </div>

      <p class="basic-flexbox_card-text">
        サービスの特徴や内容を紹介するカードです。
      </p>

    </div>

    <!-- カード2 -->
    <div class="basic-flexbox_card">

      <div class="basic-flexbox_card-title">
        サービス2
      </div>

      <p class="basic-flexbox_card-text">
        Flexboxを使って横並びに表示しています。
      </p>

    </div>

    <!-- カード3 -->
    <div class="basic-flexbox_card">

      <div class="basic-flexbox_card-title">
        サービス3
      </div>

      <p class="basic-flexbox_card-text">
        画面幅が狭くなると縦並びへ切り替わります。
      </p>

    </div>

  </div>

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

ファイル構成と設置方法

このサンプルはHTMLとCSSの2ファイルで構成されています。HTMLではFlexboxを使用したカードの構造を作成し、CSSではカードを横並びに表示するレイアウトやデザインを設定しています。JavaScriptは使用していないため、ブラウザで開くだけで基本的なFlexboxレイアウトを確認できます。

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

各ファイルの役割
index.htmlではカード全体の構造を作成しています。カードのタイトルや説明文を変更したり、カードを追加・削除したりする場合は、このファイルを編集します。

style.cssではFlexboxによる横並びレイアウトを設定しています。カードの横幅、間隔、背景色、余白、角丸、影などのデザインを変更できます。また、画面幅640px以下ではカードを縦並びへ切り替えるレスポンシブ設定も行っています。

設置方法・使い方
sampleフォルダへindex.htmlとstyle.cssを配置します。2つのファイルを同じ階層へ保存したあと、sample/index.htmlをブラウザで開くと、カードが横並びで表示されます。

カスタマイズできる内容
index.htmlではカードのタイトル、説明文、カード数を変更できます。style.cssではカードの横幅、カード同士の間隔、背景色、文字色、余白、角丸、影などを用途に合わせて調整できます。

数値調整
style.css
max-width:1200px;
カード全体の最大横幅です。1200pxを大きくするとカードを横方向へ広く表示でき、小さくすると全体がコンパクトにまとまります。

margin:40px auto;
カード全体の上下余白です。40pxを大きくすると上下の間隔が広がり、小さくすると詰まったレイアウトになります。

padding:24px;
カード内側の余白です。値を大きくすると文字と枠線の間隔が広がり、ゆとりのある見た目になります。小さくすると内容がコンパクトに表示されます。

gap:20px;
カード同士の間隔です。20pxを大きくするとカード同士が離れて表示され、小さくすると間隔が狭くなります。

border-radius:12px;
カードの角丸です。値を大きくすると丸みが強くなり、小さくすると角ばったデザインになります。0にすると四角いカードになります。

font-size:22px;
カードタイトルの文字サイズです。値を大きくするとタイトルが目立ち、小さくすると控えめな表示になります。

margin:0 0 12px;
タイトル下側の余白です。12pxを大きくするとタイトルと本文の間隔が広がり、小さくすると近づきます。

line-height:1.7;
本文の行間です。値を大きくすると文章が読みやすくなり、小さくすると行間が狭くなります。

padding:20px 16px;
640px以下で適用されるカード内側の余白です。上下20px・左右16pxの余白になります。値を大きくするとスマートフォンでも余裕のある表示になり、小さくするとコンパクトに表示されます。

640px
レスポンシブへ切り替える画面幅です。値を大きくするとより大きな画面から縦並びになり、小さくすると小さい画面だけ縦並びになります。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのdisplay:flexwidth:100%を使用し、画面幅に応じてカードを表示します。また、640px以下ではmedia queryによりflex-direction:column;へ切り替わるため、スマートフォン・タブレット・PCで見やすく利用できます。


こちらもおすすめ


コメント