recherche
Maisoninterface Webtutoriel CSSExemple de code pour la disposition de la grille CSS

Cet article présente principalement l'exemple de code de disposition de grille CSS, dans l'espoir d'aider tout le monde à maîtriser davantage de compétences CSS.

Compatibilité des navigateurs

La disposition de la grille CSS est visible à partir de Safari 10.1, Firefox 52, Chrome 60, Edge 15. Commencez à obtenir de l'aide .

Mise en page en grille

Éléments de base de la page :

    <p class="wrapper">
        <p class="box box1">One</p>
        <p class="box box2">Two</p>
        <p class="box box3">Three</p>
        <p class="box box4">Four</p>
        <p class="box box5">Five</p>
    </p>

Style :

        .wrapper {
            border: 2px solid #f76707;
            border-radius: 5px;
            background-color: #fff4e6;
        }
        .box {
            border: 2px solid #FDC180;
        }

Créez un conteneur de grille en déclarant display:grid ou display:inline-grid sur l'élément :

    .wrapper {
        display: grid;
    }

L'effet suivant :

Définir les lignes et les colonnes dans la grille

Passer le Les propriétés grid-template-columns et grid-template-rows définissent les lignes et les colonnes de la grille. Ces propriétés définissent l'orbite de la grille. Une piste de grille est l'espace entre deux lignes quelconques de la grille.

La grille suivante contient trois pistes de colonnes de 200 pixels de large :

    .wrapper {
        display: grid;
        grid-template-columns: 200px 200px 200px;
    }

Unité fr

La nouvelle unité fr représente une partie égale de l'espace disponible dans le conteneur grille. La définition de grille suivante crée trois pistes de largeur égale qui s'agrandissent et se rétrécissent en fonction de l'espace disponible.

    .wrapper {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
    }

peut également être mélangé avec des unités de pixels :

        .wrapper {
            display: grid;
            grid-template-columns: 500px 1fr 2fr;
        }

Utilisez répétition() dans la liste des pistes

La syntaxe de répétition est la suivante :

repeat(number of columns/rows, the column width we want);

Les grandes grilles avec plusieurs pistes peuvent utiliser la balise repeat() pour répéter une partie ou la liste entière des pistes. La définition de grille suivante :

    .wrapper {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
    }

peut s'écrire :

    .wrapper {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }

L'instruction Répéter peut être utilisée pour répéter une partie de la liste des pistes. Dans l'exemple ci-dessous, j'ai créé une grille qui a commencé avec une piste de 20 pixels, puis a répété 6 pistes 1fr et a enfin ajouté une piste de 20 pixels.

    .wrapper {
        display: grid;
        grid-template-columns: 20px repeat(6, 1fr) 20px;
    }

L'instruction Repeat peut être transmise dans une liste de pistes, vous pouvez donc l'utiliser pour créer une liste de pistes répétitives en mode multipiste. Dans l'exemple suivant, la grille aura un total de 10 pistes, avec une piste de 1fr suivie d'une piste de 2fr, ce motif étant répété 5 fois.

    .wrapper {
        display: grid;
        grid-template-columns: repeat(5, 1fr 2fr);
    }

grid-auto-rows et grid-auto-columns

Créez l'exemple de grille ci-dessus, nous définissons notre propre piste de colonnes en utilisant la propriété grid-template-columns, mais laissons la grille créer des lignes avec le contenu requis, et ces lignes seront créées dans la grille implicite. Une grille explicite contient les lignes et les colonnes que vous définissez dans les propriétés grid-template-columns et grid-template-rows. Si vous placez quelque chose en dehors de la définition de la grille, ou si la quantité de contenu nécessite plus de pistes de grille, la grille créera des lignes et des colonnes dans la grille implicite. Par défaut, ces pistes seront automatiquement dimensionnées, elles changeront donc de taille en fonction du contenu qu'elles contiennent.

Vous pouvez utiliser les propriétés grid-auto-rows et grid-auto-columns pour définir une piste dimensionnée dans une grille implicite.

Dans l'exemple ci-dessous, nous utilisons la propriété grid-auto-rows pour garantir que les pistes créées dans la grille implicite ont une hauteur de 200 pixels.

    .wrapper {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: 200px;
    }

minmax()

avant de définir un Quand explicite En créant une grille ou en définissant la taille des lignes et des colonnes créées automatiquement, nous souhaiterons peut-être donner à la grille une taille minimale, mais assurez-vous qu'elle peut s'agrandir pour s'adapter au contenu qui y est ajouté. Par exemple, je souhaite que la hauteur de ma ligne ne descende jamais en dessous de 100 pixels, mais si mon contenu s'étend jusqu'à 300 pixels de haut, je souhaite que la hauteur de ma ligne s'étende également jusqu'à cette hauteur.

La grille utilise la fonction minmax() pour résoudre ce problème. Dans l'exemple suivant, j'utilise minmax() comme valeur pour les lignes automatiques de grille. Les hauteurs de lignes créées automatiquement seront d'un minimum de 100 pixels et d'un maximum d'auto. Utiliser auto signifie que la taille de la ligne changera automatiquement en fonction de la taille du contenu : en fonction de l'unité la plus haute de la ligne, l'espace sera agrandi pour accueillir cette unité.

    .wrapper {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: minmax(100px, auto);
    }

<p class="wrapper">
    <p class="box">One</p>
    <p class="box">Two
        <p>I have some more content in.</p>
        <p>This makes me taller than 100 pixels.</p>
    </p>
    <p class="box">Three</p>
    <p class="box">Four</p>
    <p class="box">Five</p>
</p>

Placer une grille sur les pistes

comporte quatre lignes de quadrillage verticales et trois lignes de quadrillage horizontales comme suit :

使用了grid-column-start, grid-column-end, grid-row-start 和 grid-row-end 属性,把前两个元素放到了我们的三列网格中。从左至右,第一个元素从列线1开始,延伸至列线4,也就是我们这个例子中最右边的列线。并从行线1延伸到行线3,占据了两个行轨道。

第二个元素从列线1开始,延伸了一个轨道。因为这是默认行为,所以我不用指定结束线。并且它从行线3到行线5,跨越了两个行轨道。剩下的元素会把自己安放到网格空余的空间中。

   .wrapper {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: 100px;
    }
    .box1 {
        grid-column-start: 1;
        grid-column-end: 4;
        grid-row-start: 1;
        grid-row-end: 3;
    }
    .box2 {
        grid-column-start: 1;
        grid-row-start: 3;
        grid-row-end: 5;
    }

网格间距

在两个网格单元之间的 网格横向间距 或 网格纵向间距可使用 grid-column-gap 和 grid-row-gap 属性来创建,或者直接使用两个合并的缩写形式 grid-gap。在下面的例子中,我会创建一个横向间距为10px、纵向间距为1em的网格元素。

嵌套网格

一个网格项目可以也成为一个网格容器。在接下来的例子中我事先有了一个3列的网格元素,并有两个跨轨道的网格。在这个例子中,第一个网格项目含有几个子级项目。当这些项目不是网格容器的直接子级元素时,它们不会参与到网格布局中,并显示为正常的文档流。

html:

    <p class="wrapper">
        <p class="box box1">
            <p class="nested">a</p>
            <p class="nested">b</p>
            <p class="nested">c</p>
        </p>
        <p class="box box2">Two</p>
        <p class="box box3">Three</p>
        <p class="box box4">Four</p>
        <p class="box box5">Five</p>
    </p>

css: 

   .wrapper {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }
    
    .wrapper {
        border: 2px solid #f76707;
        border-radius: 5px;
        background-color: #fff4e6;
    }
    .box1 {
        grid-column-start: 1;
        grid-column-end: 4;
        grid-row-start: 1;
        grid-row-end: 3;
    }
    .box2 {
        grid-column-start: 1;
        grid-row-start: 3;
        grid-row-end: 5;
    }
    .box {
        border: 2px solid #FDC180;
        background: #FFD7A4;
        padding: 10px;
        color: #FB2E10;
    }
    .nested {
        border: 2px solid #FFF1A2;
        background: #FFFAD9;
    }

如果我把 box1 设置成 display: grid 我可以给它定义轨道然后它也会变成一个网格元素,它的子级元素也会排列在这个新网格元素中。

    .box1 {
        grid-column-start: 1;
        grid-column-end: 4;
        grid-row-start: 1;
        grid-row-end: 3;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }

以上内容就是CSS网格布局的示例代码,希望能帮助到大家。

相关推荐:

CSS3网格布局基础知识

CSS3 网格布局(grid layout)基础知识

详解jQuery移动页面开发中的ui-grid网格布局使用_jquery

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Draggin & # 039; et droppin & # 039; en réactionDraggin & # 039; et droppin & # 039; en réactionApr 17, 2025 am 11:52 AM

L'écosystème React nous offre de nombreuses bibliothèques qui se concentrent sur l'interaction de la glisser et de la chute. Nous avons react-dnd, react-beeufuly-dnd,

Logiciel rapideLogiciel rapideApr 17, 2025 am 11:49 AM

Il y a eu des choses merveilleusement interconnectées à propos des logiciels rapides ces derniers temps.

Gradients imbriqués avec un clip de fondGradients imbriqués avec un clip de fondApr 17, 2025 am 11:47 AM

Je ne peux pas dire que j'utilise souvent le clip de fond. Je ne parierai presque presque jamais dans le travail CSS au jour le jour. Mais je me suis souvenu de cela dans un post de Stefan Judis,

Utilisation de la réalisation de demandes avec des crochets ReactUtilisation de la réalisation de demandes avec des crochets ReactApr 17, 2025 am 11:46 AM

L'animation avec des demandes de châssis devrait être facile, mais si vous n'avez pas lu de manière approfondie de la documentation de React, vous rencontrerez probablement quelques choses

Besoin de faire défiler en haut de la page?Besoin de faire défiler en haut de la page?Apr 17, 2025 am 11:45 AM

Peut-être le moyen le plus simple d'offrir cela à l'utilisateur est un lien qui cible un ID sur l'élément. Tellement comme ...

La meilleure API (GraphQL) est celle que vous écrivezLa meilleure API (GraphQL) est celle que vous écrivezApr 17, 2025 am 11:36 AM

Écoutez, je ne suis pas un expert GraphQL mais j'aime travailler avec. La façon dont elle expose les données en tant que développeur frontal est assez cool. C'est comme un menu de

Actualités de plate-forme hebdomadaire: bookmarklet d'espacement de texte, attente de haut niveau, nouvel indicateur de chargement d'ampliActualités de plate-forme hebdomadaire: bookmarklet d'espacement de texte, attente de haut niveau, nouvel indicateur de chargement d'ampliApr 17, 2025 am 11:26 AM

Au cours de cette semaine, un Bookmarklet pratique pour inspecter la typographie, en utilisant Await pour bricoler comment les modules JavaScript s'importent, ainsi que Facebook & # 039; S

Diverses méthodes pour étendre une boîte tout en préservant le rayon de la frontièreDiverses méthodes pour étendre une boîte tout en préservant le rayon de la frontièreApr 17, 2025 am 11:19 AM

J'ai récemment remarqué un changement intéressant sur Codepen: sur le plan des stylos sur la page d'accueil, il y a un rectangle avec des coins arrondis se développant dans le dos.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel