フレックスマルチカラムレイアウトで発生する問題と解決策の詳細な説明

フレックスマルチカラムレイアウトで発生する問題と解決策の詳細な説明

フレックス レイアウトは間違いなくシンプルで使いやすいです。レイアウトをよりシンプルかつ高速にします。ただし、複数列レイアウトにフレックスを使用すると、多くの人が次のような状況に遭遇すると思います。

これは、justify-content: space-between を使用しているために発生します。この設定を使用する理由は、要素間のスペースを具体的に計算する必要がなく、flex が計算してくれるためです。ただし、このため、次の行に要素が不足している場合、上記の状況が発生します。問題は明らかで、最後の行の要素が不足していることが原因です。そのため、最後の行に空の要素を追加してスペースを占有することが考えられます。これにより、上記の問題を完全に解決できます。

ここでは、プレースホルダーを実現するために疑似要素を使用します。疑似要素では幅のみを設定する必要があり、高さは設定する必要がないことに注意してください。詳細は以下の通りです。

.コンテナ::after{
      コンテンツ: '';
      幅:320ピクセル;
    }

効果は以下のとおりです。

しかし、ディスプレイ開発では、3 列レイアウトだけでなく、4 列レイアウトや 5 列レイアウトにも遭遇することになります。明らかに、上記のアプローチは現時点では機能しません。では、どのように解決するのでしょうか。解決策も非常に簡単です。原理は同じです。空要素を使用してスペースを占有します。今回は疑似要素を使用しません。実際の DOM 要素を使用して操作します。

空の要素の行を次のように記述します。

<div class="コンテナ">
    <div class="box">1</div>
    <div class="box">2</div>
    <div class="box">2</div>
    <div class="box">2</div>
    <div class="box">2</div>
    <div class="box">2</div>
    <div class="box">2</div>
    <div class="box">2</div>
    <div class="box">2</div>
    <div class="box">2</div>
    <!-- 区切り線(以下は事前に書いた空要素) -->
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
  </div>

対応する CSS 設定:

div:空{
      高さ: 0;
      幅:160ピクセル;
      境界線:なし;
    }

効果は以下のとおりです。

この時点で、列がいくつあっても、最初の問題を完全に解決できることがわかります。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  虫眼鏡ケースのJavaScriptオブジェクト指向実装

>>:  HTML タグに類似: strong および em、q、cite、blockquote

推薦する

Axios の二次カプセル化の例 プロジェクトのデモ

1. なぜパッケージングを行うのですか?全体的なコード呼び出し、リクエストの公開処理、パーソナライズ...

MySQL のテーブルリターンとインデックスカバレッジの例の詳細な説明

目次インデックスタイプインデックス構造非クラスター化インデックスクエリインデックスカバー要約するイン...

Vueで親子コンポーネント通信を実装する方法

目次1. 親コンポーネントと子コンポーネントの関係2. 小道具3. $エミット4. $親V. 結論 ...

ドラッグアンドドロップによる並べ替えの詳細を実現する js

目次1. はじめに2. 実装3. HTML ドラッグ アンド ドロップ API を使用しないのはなぜ...

RedHat 6.5/CentOS 6.5 に MySQL 5.7.20 をインストールするための詳細なチュートリアル

rpmインストールパッケージをダウンロードするMySQL公式サイト: https://dev.mys...

MySQL 5.7.20 解凍版のインストールとルートパスワードの変更に関するチュートリアル

1. MySQL アーカイブ (解凍版) をダウンロードするURL: https://downloa...

DIVのぼかし機能を実装する方法

マウスを動かしたときにDIVが消えるように手ぶれ補正を使用するdiv タグ自体は onblur イベ...

JavaScriptアニメーション関数のカプセル化の詳細な説明

目次1. アニメーション機能の原理2. アニメーション関数のシンプルなカプセル化3. アニメーション...

vue.js でよく使われる v 命令の解析

目次Vue でのモデルバインド表示の if の v-text の説明v-html: v-オンv-if...

Docker execは複数のコマンドを実行します

docker exec コマンドは、実行中のコンテナ内でコマンドを実行できます。 docker ex...

WeChatアプレットの入力レベルとテキストエリアレベルの浸透率が高すぎる問題の解決策

WeChat ミニプログラムのネイティブ コンポーネントであるカメラ、キャンバス、入力 (フォーカス...

Nginx 仮想ホストを構成する 3 つの方法 (ポートベース) の詳細な説明

Nginx は、IP ベースの仮想ホスト構成、ポート ベースの仮想ホスト構成、ドメイン名ベースの仮想...

WeChatアプレットが計算機機能を実装

この記事では、WeChatアプレットの計算機機能を実装するための具体的なコードを参考までに紹介します...

MySQL がデフォルト値を持つ NULL 列の使用を推奨しない理由

よく聞かれる答えは、列に NULL 値を使用するとインデックスが無効になるというものですが、実際にテ...

MySQL 5.7 共通データ型

——「MySQL in Simple Terms (第 2 版)」からのメモ数値型整数型バイト最小最...