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

青灯夜游
リリース: 2022-01-25 10:46:02
転載
8478 人が閲覧しました

この記事では、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 サイトの他の関連記事を参照してください。

関連ラベル:
css
ソース:juejin.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート