CSS3 の display:grid、グリッドレイアウトの紹介

CSS3 の display:grid、グリッドレイアウトの紹介

1. グリッドレイアウト(グリッド):

Web ページをグリッドに分割し、さまざまなグリッドを組み合わせてさまざまなレイアウトを作成できます。

2. 基本概念:

コンテナとプロジェクトを図に示します。

    <div class="content">
        <div class="b">1</div>
        <div class="b">2</div>
        <div class="b">3</div>
        <div class="b">4</div>
        <div class="b">5</div>
        <div class="b">6</div>
        <div class="b">7</div>
        <div class="b">8</div>
        <div class="b">9</div>
    </div>

.content はコンテナで、.b はプロジェクトです。

行と列: row: row;

列: 列;

3. コンテナのプロパティ

display:grid; //デフォルトはブロック要素です。

display:inline-grid; //インラインブロック要素

グリッドレイアウトを使用するコンテナーを指定します。

注意: グリッドに設定すると、子要素の float、display: inline-block、display: table-cell、vertical-align、column-* 設定は無効になります。

。コンテンツ {
            ボックスシャドウ: 0 0 1px #f6f;
            表示: グリッド;
            グリッドテンプレートの列: 100px 100px 100px;
            グリッドテンプレートの行: 100px 100px 100px;
        }

4. 属性の説明

grid-template-columns: 各列の幅を定義します。

grid-template-columns: 100px 100px 100px; // 合計 3 つの列、各列の幅は 100px です。=

grid-template-rows: 各行の行の高さを定義します。

grid-template-rows: 100px 100px 100px; //上から下まで、各行の高さは 100px です。

//ピクセルの使用に加えて、パーセンテージも使用できます。

拡大する:

値を繰り返し記述するのは面倒なので、繰り返し機能を使うと良いでしょう。

repeat(回数, サイズ);

例: repeat(3,100px); // 100px ずつ 3 回繰り返します。

繰り返し書き方:

グリッドテンプレート列:repeat(3,100px);

グリッドテンプレート行:repeat(3,100px);

可変サイズの特定のパターンを繰り返すこともできます。

例えば:

グリッドテンプレート列:100px 80px 100px;

次のように書き直します。

grid-template-columns:repeat(2,100px 80px); // 100px 80px のパターンを 2 回繰り返すことを表します。つまり、4 列です。

は以下と同等です:

グリッドテンプレート列:100px 80px 100px 80px;

図に示すように:

5. キーワード

1. 自動入力。コンテナのサイズが固定されておらず、アイテムのサイズが固定されている場合は、自動入力キーワードを使用して自動的に入力できます。

    。コンテンツ {
            ボックスシャドウ: 0 0 1px #f6f;
            表示: グリッド;
            グリッドテンプレート列: repeat(自動入力、100px);
} 

2、fr (分数): 2 つの列の幅がそれぞれ 1fr と 2fr の場合、後者の幅は前者の 2 倍であることを意味します。

   。コンテンツ {
            ボックスシャドウ: 0 0 1px #f6f;
            表示: グリッド;
            グリッドテンプレートの列: 1fr 2fr;
            グリッドテンプレートの行: repeat(3, 100px 80px);
}

fr は px と一緒に使用することもできます。

        。コンテンツ {
            ボックスシャドウ: 0 0 1px #f6f;
            表示: グリッド;
            グリッドテンプレート列: 400px 1fr 2fr;
} 

3.最小最大();

グリッドテンプレートの列: 1fr 5fr minmax(100px, 1fr);

説明: 最初の列は 1fr、2 番目の列は 5fr、3 番目の列の最小値は 100px、最大値は 1fr です。 2 列目の fr が無限大で、3 列目が 100px に達すると、1 列目から値を借用します。

       。コンテンツ {
            ボックスシャドウ: 0 0 1px #f6f;
            表示: グリッド;
            グリッドテンプレートの列: 1fr 5fr minmax(100px, 1fr);
}

4.自動: 適応型;

   。コンテンツ {
            ボックスシャドウ: 0 0 1px #f6f;
            表示: グリッド;
            グリッドテンプレート列: 100px 自動 100px;
}

6. グリッド線名:

        。コンテンツ {
            ボックスシャドウ: 0 0 1px #f6f;
            表示: グリッド;
            グリッドテンプレート列: [c1] 100px [c2] 100px [c3] 自動 [c4];
            グリッドテンプレート行: [r1] 100px [r2] 100px [r3] 自動 [r4];
}

説明: 後で簡単に参照できるように、各グリッド ラインの名前を指定します。

複数の名前が存在する場合もあります。[c1,c1a]

7. 間隔

row-gap: 行間隔;

 。コンテンツ {
            ボックスシャドウ: 0 0 1px #f6f;
            表示: グリッド;
            グリッドテンプレートの列: 100px 100px 100px;
            グリッドテンプレートの行: 100px 100px 100px;
            行間隔: 20px;
}

colum-gap: 列間隔;

 。コンテンツ {
            ボックスシャドウ: 0 0 1px #f6f;
            表示: グリッド;
            グリッドテンプレートの列: 100px 100px 100px;
            グリッドテンプレートの行: 100px 100px 100px;
            列間隔: 20px;
}

略語:

ギャップ:20px 20px;

row-gap と column-gap の短縮形。

ギャップにより 2 番目の値が省略され、ブラウザーは 2 番目の値を最初の値と等しいとみなします。

8. 地域

grid-template-areas: グリッド レイアウトでは、単一のセルまたは複数のセルから構成される「領域」を指定できます。 grid-template-areas プロパティは領域を定義するために使用されます。

  。コンテンツ {
            ボックスシャドウ: 0 0 1px #f6f;
            表示: グリッド;
            グリッドテンプレート領域: 'abc' 'def' 'gh i';
        }

要約する

以上が CSS3 の display:grid とグリッド レイアウトの紹介です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

<<:  ユーザーエクスペリエンスの要素またはWebデザインの要素

>>:  ブラウザがクロージャをどのように認識するかについて詳しく説明します

推薦する

mysql5.5.28 のインストール チュートリアルは非常に詳細です。

参考までにmysql5.5.28のインストールチュートリアルです。具体的な内容は次のとおりです。イン...

CSS3を使用してヘッダーアニメーション効果を作成する

Netease Kanyouxi公式サイト(http://kanyouxi.163.com/)(棚...

docker redis5.0 clusterの実装 クラスタ構築

システム環境: Ubuntu 16.04LTSこの記事では、6 つの Docker コンテナを使用し...

Windows Server 2016 リモート デスクトップ サービスの構成とライセンスのアクティブ化 (2 ユーザー)

Server 2016 のリモート デスクトップ接続のデフォルト数は 2 ユーザーです。2 人以上...

一意の注文番号を生成するためのMySQLの高同時実行方法

序文このブログ記事が公開された後、何人かの友人からSQL Serverバージョンがあるかどうか尋ねら...

Windowsタイムサーバーの設定方法の詳しい説明

最近、会社のサーバーの時間が不正確で、外部の時間ソースと同期できないことがわかりました。会社はドメイ...

HTML の値属性と名前属性の機能と使用法の紹介

1. ボタンで使用される値は、「OK」、「削除」など、ボタンに表示されるテキストを指します。 2. ...

HTML iframe と frameset の違い_PowerNode Java Academy

導入1.<iframe> タグ: iframe は、ページ内に内部フレームを生成するイン...

Linux のバックグラウンドで実行するいくつかの方法 (まとめ)

1. ノーフープハングアップ信号を無視してプログラムを実行する追加メモnohup コマンドは、ハン...

Linux jdk のインストールと環境変数の設定チュートリアル (jdk-8u144-linux-x64.tar.gz)

最初にsudo suコマンドを使用して root アカウントに切り替えることをお勧めします。そうしな...

CSS を使用して fullpage.js のフルスクリーン スクロール効果を実装するサンプル コード

最近 CSS を勉強していたとき、 2 つの CSS プロパティだけを使用して全画面スクロール効果を...

Mysql のフィールドのデータの一部をバッチ置換する (推奨)

MYSQL のフィールドのデータの一部をバッチで置き換えます。具体的な導入は次のとおりです。 1....

WeChat アプレット uniapp は左スワイプによる削除効果を実現します (完全なコード)

WeChatアプレットuniappは左スワイプで削除効果を実現成果を達成する1. スワイプしてリス...

VMware Workstation Pro 16 ライセンス キーと使用方法のチュートリアル

VMware Workstation は、開発、テスト、デモンストレーション、展開のために仮想マシン...

MySql インデックスはクエリ速度を向上させる一般的な方法のコード例

インデックスを使用してクエリを高速化する1. はじめにWeb 開発には、ビジネス テンプレート、ビジ...