ホームページ  >  記事  >  ウェブフロントエンド  >  CSS を使用して 9 マスのグリッド レイアウトを実現するいくつかの方法について説明しましょう。

CSS を使用して 9 マスのグリッド レイアウトを実現するいくつかの方法について説明しましょう。

青灯夜游
青灯夜游転載
2022-01-25 10:46:028380ブラウズ

この記事では、CSS を使用して 9 マスのグリッド レイアウトを実装するいくつかの方法と、nth-of-type と nth-child の違いを紹介します。

CSS を使用して 9 マスのグリッド レイアウトを実現するいくつかの方法について説明しましょう。

#ここ数日、「9マス方眼レイアウト」というページでよく質問を目にしました。 9マスグリッドレイアウトを実装する方法をいくつか試してみたところ、cssの知識がかなり必要だったので記録しておきます。

この記事はとても良い記事だと思います、マスターのボーダー9マスの書き方を参考にしてみてください! # 九公歌を過小評価しないでください。質問 1 つで候補者の本性が明らかになる可能性があります。

九公歌の実装

次の実装方法はすべて適応可能です

CSS を使用して 9 マスのグリッド レイアウトを実現するいくつかの方法について説明しましょう。

基本的なレイアウトとスタイル

<div class="box">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
    </ul>
</div>
.box {
    background: #e4f7fd61;
    border: 2px solid #0786ada1;
    border-radius: 8px;
}

ul {
    padding: 0; 
    margin: 0;
}

.box li {
    list-style: none;
    text-align: center;
    line-height: 200px;
    background: skyblue;
    border-radius: 8px;
    font-size: 20px;
    color: black;
}

実装 1: flex

flex を使用する際に注意すべき点が 1 つあります。レイアウトの実装では、flex-wrap 属性を使用してラップする必要があります。

.box {
    width: 100%;
    overflow: hidden;
}

ul {
    width: 100%;
    height: 100%;
    display: flex;
    flex-wrap: wrap;
}

.box li {
    width: 30%;
    height: 30%;
    margin-right: 5%;
    margin-bottom: 5%;
}

.box li:nth-of-type(3n) {
    margin-right: 0;
}

.box li:nth-of-type(n+7) {
    margin-bottom: 0;
}

実装 2: float

float を使用して実装するには 1 つの点に注意する必要があります。フローティングするとフローティングの崩壊が発生します。したがって、overflow: hidden; を設定し、box を BFC に設定して、フローティング折りたたみを解決できます。

.box {
    width: 100%;
    overflow: hidden;
}

ul {
    width: 100%;
    height: 100%;
}

.box li {
    width: 30%;
    height: 30%;
    margin-right: 5%;
    margin-bottom: 5%;
    float: left;
}

.box li:nth-of-type(3n) {
    margin-right: 0;
}

.box li:nth-of-type(n+7) {
    margin-bottom: 0;
}

実装 3: グリッド

CSS を使用して 9 マスのグリッド レイアウトを実現するいくつかの方法について説明しましょう。##

<div class="grid">
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <div>4</div>
    <div>5</div>
    <div>6</div>
    <div>7</div>
    <div>8</div>
    <div>9</div>
</div>
box {
    background: #e4f7fd61;
    border: 2px solid #0786ada1;
    border-radius: 8px;
}

.grid {
    display: grid;
    width: 100%;
    grid-template-rows: repeat(3, 1fr);
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 5%;
    grid-auto-flow: row;
}

.grid>div {
    list-style: none;
    text-align: center;
    line-height: 200px;
    background: skyblue;
    border-radius: 8px;
    font-size: 20px;
    color: black;
}

実装 4: テーブル

テーブルの使用にはいくつかの問題があります。

table セル間の間隔は、border-spacing 属性を使用して実現されますが、パーセント形式 をサポートしており、セルの周囲に margin と同様のマージン効果があります。

CSS を使用して 9 マスのグリッド レイアウトを実現するいくつかの方法について説明しましょう。

<div class="box">
    <ul>
        <li>
            <div>1</div>
            <div>2</div>
            <div>3</div>
        </li>
        <li>
            <div>4</div>
            <div>5</div>
            <div>6</div>
        </li>
        <li>
            <div>7</div>
            <div>8</div>
            <div>9</div>
        </li>
    </ul>
</div>
.box {
    width: 100%;
    overflow: hidden;
}

ul {
    width: 100%;
    height: 100%;
    display: table;
    border-spacing: 10px;
}

.box li {
    display: table-row;
}

.box li div {
    display: table-cell;
    text-align: center;
    border-radius: 10px;
}

nth-of-type と nth-child の違い

上記では 9 正方形のグリッド レイアウトを使用しました

nth-of- type この属性は、最後の列の margin-right: 0 と最後の行の margin-bottom: 0 を実装するために使用されます。そこで、css にも nth-child 属性があることを思い出したので、両者の違いを記録しておきます。

n 番目のタイプ

MDN::n 番目のタイプ(n) この疑似クラスは、兄弟ノードのグループを持つ タグ 用です。兄弟ノードのグループの位置をフィルタリングするには、n を使用します。

CSS を使用して 9 マスのグリッド レイアウトを実現するいくつかの方法について説明しましょう。

CSS を使用して 9 マスのグリッド レイアウトを実現するいくつかの方法について説明しましょう。

上の図からわかるように、

nth-of-type は、その型の n 番目の兄弟要素であるため、現在の要素 なので、p:nth-of-type(4) は 4 番目の p 要素です。つまり、どの要素が中央に追加されても、現在のタグ要素のみ の n 番目の要素が選択されます。

n 番目の子

MDN::n 番目の子 (b) this疑似クラスは、まず現在の要素のすべての兄弟要素を検索し、1 から始まる位置順に並べ替えます。選択の結果は、n 番目の子括弧内の式 (an b) と一致する要素のセットです。 CSS 疑似クラス (n=0、1、2、3...) の

nth-child は、現在の要素の兄弟要素の n 番目の現在の要素です。すべての兄弟要素がソートされた後の n 番目の 現在のタグ要素

CSS を使用して 9 マスのグリッド レイアウトを実現するいくつかの方法について説明しましょう。

CSS を使用して 9 マスのグリッド レイアウトを実現するいくつかの方法について説明しましょう。

上の図からわかるように、

nth-child は、すべての兄弟要素を並べ替えた後の n 番目の子です。現在の要素 現在のタグ要素 であるため、p:nth-child(4) は 4 番目にランク付けされます。 p ビットの要素。下図のように、4 番目が他のタグ要素の場合は取得できません。コメントエリア コミュニケーションをとって一緒に進歩しましょう!

(学習ビデオ共有:

css ビデオ チュートリアルCSS を使用して 9 マスのグリッド レイアウトを実現するいくつかの方法について説明しましょう。)

以上がCSS を使用して 9 マスのグリッド レイアウトを実現するいくつかの方法について説明しましょう。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。