プロジェクトにおける CSS グリッドシステムの柔軟な使用方法の詳細な説明

プロジェクトにおける CSS グリッドシステムの柔軟な使用方法の詳細な説明

序文

CSS グリッドは通常、さまざまなフレームワークにバンドルされていますが、実際のビジネス ニーズを満たすために CSS グリッドを自分でカスタマイズする必要がある場合もあります。この記事では、プロジェクトでの CSS グリッド システムの柔軟な使用について説明します。

必要

UI は、左上のオレンジ色の部分が固定され、青色の部分が動的にレンダリングされる次のようなレイアウトで設計されています。これらは、前面から背面に表示されます。ブロックが 1 つある場合は 1 つ表示され、2 つある場合は 2 つ表示されます。データが 6 個を超える場合、余分なデータは下の 4 つの列に表示されます。

分析する

図からわかるように、グリッドには 3 列グリッドと 4 列グリッドの 2 種類があります。バックエンド インターフェイスがデータを返す場合、js は判断を行う必要があります。データが 6 より大きい場合、最初の 6 個は配列 A に配置され、配列 A のデータは 3 列のグリッドに表示されます。残りの部分は配列 B に配置され、配列 B のデータは 4 列のグリッドに表示されます。

HTML部分

<div id="アプリ">
  <div class="grid-container">
    <div style="幅: 25%; 高さ: 220px; フロート: 左; 背景色: #FF6600; "></div>
    <div class="row" style="width: 75%; float: right;">
      <div class="col-3" v-for="(item, index) in groupListCol3" :key="index">
        <div class="groups-cell">{{item.name}}</div>
      </div>
    </div>
    <div class="row" style="width: 100%;">
      <div class="col-4" v-for="(item, index) in groupListCol4" :key="index">
        <div class="groups-cell">{{item.name}}</div>
      </div>
    </div>
  </div>
</div>

CSS部分

.グリッドコンテナ{
      幅: 100%;
    }
    .グリッドコンテナ *{
      ボックスのサイズ: 境界線ボックス;
    }

    .grid-container .row:before、
    .grid-container .row:after {
      コンテンツ: "";
      表示: テーブル;
      クリア: 両方;
    }

    .grid-container [クラス*='col-'] {
      フロート: 左;
      最小高さ: 1px;
      /*-- ガター --*/
      パディング: 0 0 20px 20px;
    }
    .グリッドコンテナ .col-3{
      幅: 33.33%;
      高さ: 120px;
    }
    .グリッドコンテナ .グループセル {
      背景色: #66d3ff;
      高さ: 100px;
    }
    .grid-container .col-4 {
      幅: 25%;
      高さ: 120px;
    }
    .grid-container .col-4:n番目の子(4n+1) {
      パディング: 0 0px 20px 0px;
    }

注: 4 列のグリッドでは、各行の最初のセルには padding-left は必要ないため、最終的に.col-4:nth-child(4n+1)の値を設定する必要があります。

js部分

<script src="https://cdn.bootcss.com/vue/2.5.16/vue.js"></script>
<スクリプト>
  新しいVue({
    el: '#app',
    データ: {
      グループリスト列3: [],
      グループリスト列4: []
    },
    作成された(){
      リスト = [
        {名前: 'A'},
        {名前: 'B'},
        {名前: 'C'},
        {名前: 'D'},
        {名前: 'E'},
        {名前: 'F'},
        {名前: 'G'},
        {名前: 'H'},
        {名前: '私'},
        {名前: 'J'},
        {名前: 'K'},
        {名前: 'L'}
      ]
      リストの長さが6より大きい場合
        this.groupListCol3 = リスト.スライス(0, 6)
        this.groupListCol4 = リスト.スライス(6)
      } それ以外 {
        this.groupListCol3 = リスト
      }
    }
  })
</スクリプト>

まとめ

この記事では、CSS グリッドの原理を説明するのではなく、CSS グリッド システムを使用して特定のビジネス上の問題に対するソリューションを提供する方法について説明します。グリッド システムの原理については、この外国人によって詳細に記述されている参考セクションを参照してください。

参照する

独自の CSS グリッド システムを作成する

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

<<:  W3C チュートリアル (7): W3C XSL アクティビティ

>>:  vue3+ts+EsLint+Prettier 標準コード実装

推薦する

JavaScriptプロトタイプチェーンを理解する

目次1. プロトタイプとプロトタイプチェーンの平等関係を理解する2: プロトタイプとプロトタイプ チ...

MySQLは挿入を使用して複数のレコードを挿入し、データを一括で追加します。

table1 に 5 つのレコードを挿入する場合、次のコードは誤りです。 テーブル1に(id,na...

任意の長さの配列を作成または埋めるための JS のヒントの要約

目次序文直接充填方式for ループの push() メソッド配列コンストラクタメソッド配列コンストラ...

Nginx は gzip 圧縮に基づいてアクセス速度を向上します

1. nginx はなぜ gzip を使用するのですか? 1. 圧縮の役割:ページがgzipで圧縮さ...

WeChatアプレットはシンプルなサイコロゲームを実装します

この記事では、サイコロゲームを実装するためのWeChatアプレットの具体的なコードを参考までに共有し...

Linux で複数のファイルの名前を一括で変更する方法

Linux では、通常、ファイルの名前を変更するために mv コマンドを使用します。これは、単一のフ...

JavaScript イベント ループのケース スタディ

js のイベント ループJavaScript はシングルスレッドなので、同じイベントで実行できるメソ...

LinuxでJenkinsのパスワードを忘れる方法

1.Jenkinsのインストール手順: https://www.jb51.net/article/1...

MySQL 5.7.16 ZIP パッケージのインストールと設定のチュートリアル

この記事では、MySQL 5.7.16 ZIPパッケージのインストールと設定のチュートリアルを参考ま...

Linuxの一般的なコマンドでLinuxのmoreコマンドを使用する方法

more は、最もよく使用されるツールの 1 つです。最も一般的な使用方法は、出力コンテンツを表示し...

MySQL におけるデフォルトの使用法の詳細な説明

NULL および NOT NULL 修飾子、DEFAULT 修飾子、AUTO_INCREMENT 修...

Linuxはsttyを使用して端末の回線設定を表示および変更します。

Sttty は、Linux で端末設定を変更および印刷するための一般的なコマンドです。 1. パラ...

Dockerコンテナが停止できない問題の解決方法

解決策は次のとおりです。 1. コンテナを強制削除する docker rm -f ジェンキンス2. ...

MYSQL接続ポートが占有され、ファイルパスエラーが発生する問題を解決します

今朝、私は Wampserver を使用してローカルの win7 マシン上に PHP 環境を構築し、...

JavaScriptの動作原理を理解しましょう

目次ブラウザカーネルJavaScript エンジンV8エンジンJavaScript がどのように実行...