CSSで等間隔配置を実現:1行に複数または複数行に配置

CSSで等間隔配置を実現:1行に複数または複数行に配置

CSSでは、特にレスポンシブデザインで要素を等間隔に配置することがよくあります。列数と間隔を動的に制御することで、柔軟なレイアウトが可能になります。以下は、10個のアイテムを含む例を使用して、1行に5個のアイテムを表示する方法を示します。もちろん、この数は必要に応じて調整できます。

HTML構造:

<div class="list">
    <div class="item">01</div>
    <div class="item">02</div>
    <div class="item">03</div>
    <div class="item">04</div>
    <div class="item">05</div>
    <div class="item">06</div>
    <div class="item">07</div>
    <div class="item">08</div>
    <div class="item">09</div>
    <div class="item">10</div>
</div>

実際の使用例では、.itemの中にさらに多くの内容が含まれることがあります。ここでは数字を使ってアイテムを表しています。

SCSSコード:

Flexboxを使用した等間隔配置

:root {
    --theme-color: #ffe4c4;
    --theme-shadow-color: rgba(0, 0, 0, .9);
    --flex-list-col-num: 5; /* 列の数 */
    --flex-list-column-gap: 1em; /* 列間の間隔 */

    /* --flex-width: calc(100% / var(--flex-list-col-num) - (var(--flex-list-column-gap) * calc(var(--flex-list-col-num) - 1) / var(--flex-list-col-num))); */

    /* より効率的な書き方(数学的に簡略化したバージョン) */
    --flex-width: calc((100% - var(--flex-list-column-gap) * (var(--flex-list-col-num) - 1)) / var(--flex-list-col-num));
}

.list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--flex-list-column-gap);

    .item {
        width: var(--flex-width);
        min-height: 200px;
        background-color: var(--theme-color);
        box-shadow: 0 0 10px var(--theme-shadow-color);

        display: flex;
        align-items: center;
        justify-content: center;
    }
}

説明:

  • --flex-list-col-num は、1行に表示するアイテムの数を制御します。これを変更することで、1行の列数を調整できます。
  • --flex-list-column-gap は、アイテム間の間隔を制御します。
  • calc() 関数を使って各アイテムの幅を動的に計算し、画面幅に応じて自動的に調整されます。

この方法の利点は、レイアウトを調整する際に、--flex-list-col-num--flex-list-column-gap の2つの変数だけを変更すればよいので、コードの重複を大幅に減らすことができます。

Gridを使用した等間隔配置

Flexboxの他に、CSS Gridを使っても非常に簡単に等間隔配置を実現できます。以下はGridレイアウトで同様の効果を得るためのコードです:

.list {
    display: grid;
    grid-template-columns: repeat(var(--flex-list-col-num), 1fr);
    gap: var(--flex-list-column-gap);

    .item {
        min-height: 200px;
        background-color: var(--theme-color);
        box-shadow: 0 0 10px var(--theme-shadow-color);

        display: flex;
        align-items: center;
        justify-content: center;
    }
}

説明:

  • grid-template-columns: repeat(var(--flex-list-col-num), 1fr) によって、各アイテムは等しいスペースを占め、列数は --flex-list-col-num で制御されます。
  • gap プロパティは、アイテム間の間隔を設定します。

--flex-list-col-num--flex-list-column-gap を調整することで、1行に表示するアイテム数やその間隔を簡単に管理できます。FlexboxとGridのいずれを使用しても、シンプルでコントロールしやすい効果を得られます。レスポンシブデザインにおいては、この方法が特に役立ち、コード量を削減し開発効率を向上させることができます。

関連記事
フッターのJavaScriptは画像読み込みに影響する?ブラウザの読み込み順と最適化の基本
はじめに Webサイトの表示速度や操作感は、単にコンテンツの量や見た目だけでなく、ブラウザがリソースをどのように読み込むかによっても大きく左右されます。特にJavaScriptや画像の読み込み順序、そしてそれらがどのように相互作用しているか […]
解構人
解構人
4日前
フッターのJavaScriptは画像読み込みに影響する?ブラウザの読み込み順と最適化の基本
全角と半角の違いとは?変換方法をわかりやすく解説【ツール付き】
はじめに 日本語のテキストを扱う場面で、「全角」と「半角」の使い分けに悩んだことはありませんか?入力ミスやシステムの不具合、さらには検索精度の低下につながることもあり、特にWeb制作や文字校正では注意が必要です。本記事では、全角・半角の基本 […]
X SIGHT 編集部
X SIGHT 編集部
5日前
全角と半角の違いとは?変換方法をわかりやすく解説【ツール付き】
和暦から西暦変換ツール
このツールは、日本の元号(和暦)と西暦を相互に変換できるシンプルな変換ツールです。「昭和64年は何年?」「2025年は令和何年?」といった場面で、すぐに答えがわかります。 履歴書の作成、行政手続き、年齢計算、歴史的資料の読み解きなどにご活用 […]
X SIGHT 編集部
X SIGHT 編集部
5日前
和暦から西暦変換ツール
iPhone(iOS Safari)における input タグの角丸問題とその対策
iPhone(iOS Safari)でinputタグに自動で適用される角丸スタイルを無効化する方法を詳しく解説。CSSによるリセットやカスタムスタイルの実装手順を、具体的なコードとともに紹介します。
キウイフルーツ
キウイフルーツ
10日前
iPhone(iOS Safari)における input タグの角丸問題とその対策
第1回:ウェブにおける色の基礎(2025年最新版)
ウェブデザインの基礎「色」について、2025年最新トレンドやアクセシビリティ・ダークモード対応まで、実務ですぐ使えるCSS色指定方法を分かりやすく解説。初心者から現場のデザイナーまで必見のカラーマネジメント入門ガイド。
X SIGHT 編集部
X SIGHT 編集部
29日前
日本語用WebサイトのCSSフォント設定(日本語フォント/游ゴシック/游明朝)
日本語フォントはOSにより異なるため、複数のフォントを優先順に指定する。 "Yu Gothic"や"Yu Mincho"はモダンな日本語フォントでWindows 8.1以降に搭載。 "ヒラギノ角ゴ"や"ヒラギノ明朝"はmacOS向けで、高品質。 "メイリオ"や"MS 明朝"などは古いWindows環境にも対応。 ゴシック体はカジュアル・読みやすさ重視、明朝体はフォーマル・高級感重視に適している。
Details
Details
18日前
日本語用WebサイトのCSSフォント設定(日本語フォント/游ゴシック/游明朝)
inputのプレースホルダー(placeholder)の色を変更する
プレースホルダーの色は::placeholder疑似要素で変更可能 IEやEdgeなどの古いブラウザ向けに:-ms-input-placeholder、::-ms-input-placeholderを併用 Firefoxでは透明度の調整のためopacity指定が推奨される
Details
Details
18日前
inputのプレースホルダー(placeholder)の色を変更する
IT業界の初心者が知っておくべきの用語(2025版)
新しいテクノロジーについて話すとき、時々自分がみんなのペースについていけないと感じることはありませんか?あるいは、その業界にいるのに、自分はまだ十分ではないと感じ、多くの専門用語を理解しなければならないこともあるでしょう。
Details
Details
9日前
IT業界の初心者が知っておくべきの用語(2025版)
ページ遷移の一般的な方法
本記事では、Webページにおけるページ遷移(リダイレクト)の一般的な実装方法について紹介しています。JavaScript、HTMLのメタタグ、PHP、ASPを用いたリダイレクト方法をそれぞれ具体的なコード例と共に解説しています。
Details
Details
26日前
ページ遷移の一般的な方法
SCSSの @for ループ(ループ文)
SCSSの @for ループ
Beefy Guy
Beefy Guy
1ヶ月前
SCSSの @for ループ(ループ文)
ユーザーのブラウザに保存されているJavaScript、CSS、画像のキャッシュを削除するにはどうすればいいですか?
ブラウザのキャッシュによる古いJavaScript、CSS、画像の表示を防ぐには、URLにバージョン番号や日時パラメータを付けてリソースを更新する方法が有効です。 毎回タイムスタンプを使うとキャッシュ効果がなくなるため、手動や適切なタイミングでバージョン番号を管理するのがおすすめです。
Details
Details
1ヶ月前
ユーザーのブラウザに保存されているJavaScript、CSS、画像のキャッシュを削除するにはどうすればいいですか?
JavaScriptでナビゲーション以外の場所をクリックしたらナビゲーションを閉じる
本コードは典型的なモバイル用サイドナビゲーションの実装例です。ボタンによる表示切替と、メニュー外クリック検知を組み合わせることで、ユーザー体験を向上させています。さらにESCキーでのメニュー閉鎖も可能にし、アクセシビリティも配慮しています。
Details
Details
17日前
JavaScriptでナビゲーション以外の場所をクリックしたらナビゲーションを閉じる
【SEO基礎】rel=”nofollow”とは?リンクの評価をコントロールするHTML属性を解説
SEO対策に欠かせない「rel="nofollow"」の意味と使い方を解説。広告やユーザー投稿に適切なrel属性を設定し、検索エンジンとの正しい関係を築きましょう。
qqplus
qqplus
6日前
【SEO基礎】rel=”nofollow”とは?リンクの評価をコントロールするHTML属性を解説
SafariでGoogleフォントが正しく表示されない原因と対策【font-weight・font-style完全ガイド】
SafariやiOSでGoogleフォントが正しく表示されない主な原因と対策を徹底解説。font-weight・font-styleの指定ミスによるWebフォント崩れを解決するCSSサンプル付きガイド。
X SIGHT 編集部
X SIGHT 編集部
24日前
SafariでGoogleフォントが正しく表示されない原因と対策【font-weight・font-style完全ガイド】
相対パスと絶対パスの使い方
相対パスは、モジュールやディレクトリ内のローカルな参照に適しており、柔軟性があります。一方、絶対パスはウェブサイト全体で共通のリソース(CSS、画像、CDNなど)を参照する際に便利です。両者を理解して使い分けることで、パスのエラーや読み込み不具合を防げます。
Details
Details
18日前
相対パスと絶対パスの使い方