Bienvenue à la dixième conférence du cours "De base à Brilliance". Dans cette conférence, nous approfondirons les techniques avancées de grille CSS. Ces techniques vous permettront de créer des mises en page encore plus complexes et réactives. À la fin de cette conférence, vous serez capable de travailler avec des zones de grille, du placement automatique de grille et de combiner CSS Grid avec d'autres systèmes de mise en page comme Flexbox.
Les zones de grille vous permettent d'attribuer des noms aux sections de votre grille, ce qui facilite la gestion et la visualisation de votre mise en page.
HTML :
<div class="grid-container"> <header class="header">Header</header> <aside class="sidebar">Sidebar</aside> <main class="content">Main Content</main> <footer class="footer">Footer</footer> </div>
CSS :
.grid-container { display: grid; grid-template-areas: "header header" "sidebar content" "footer footer"; grid-template-columns: 200px 1fr; grid-template-rows: auto 1fr auto; } .header { grid-area: header; } .sidebar { grid-area: sidebar; } .content { grid-area: content; } .footer { grid-area: footer; }
Dans cet exemple :
CSS Grid dispose d'une fonction de placement automatique qui positionne automatiquement les éléments de la grille lorsqu'ils ne sont pas explicitement placés. Vous pouvez contrôler comment cela fonctionne à l'aide de grid-auto-flow.
Valeurs :
Exemple :
.grid-container { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-flow: row dense; /* Auto-places items and packs them densely */ }
Dans ce cas, les éléments de la grille seront placés ligne par ligne et les éléments plus petits combleront les espaces vides.
La fonction minmax() vous permet de définir une plage pour les pistes de grille, par exemple en spécifiant la taille minimale et maximale qu'une piste de grille peut prendre.
.grid-container { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)); }
Dans cet exemple :
Le remplissage et l'ajustement automatiques sont tous deux utilisés pour créer des grilles dynamiques, mais ils fonctionnent légèrement différemment :
Ajustement automatique : réduit ou agrandit les colonnes pour s'adapter à l'espace disponible.
Exemple : Comparaison de l'ajustement automatique et du remplissage automatique.
.grid-container { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); /* Auto-fill */ } .grid-container-fit { display: grid; grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); /* Auto-fit */ }
Les deux options ajustent automatiquement le nombre de colonnes en fonction de l'espace disponible, mais l'ajustement automatique réduira les colonnes vides.
Bien que CSS Grid soit idéal pour structurer la mise en page globale, Flexbox est parfait pour contrôler l'alignement au sein d'éléments individuels. Vous pouvez combiner les deux pour gérer différentes parties de votre mise en page.
HTML :
<div class="grid-container"> <div class="header">Header</div> <div class="content"> <div class="flexbox-item">Item 1</div> <div class="flexbox-item">Item 2</div> </div> <div class="footer">Footer</div> </div>
CSS :
.grid-container { display: grid; grid-template-columns: 1fr; grid-template-rows: auto 1fr auto; } .content { display: flex; justify-content: space-around; align-items: center; } .flexbox-item { padding: 20px; background-color: #ddd; }
Dans cet exemple :
Les grilles peuvent être définies explicitement (en utilisant des colonnes de modèle de grille et des lignes de modèle de grille) ou implicitement (où de nouvelles pistes sont créées automatiquement).
Grille implicite : La grille crée automatiquement des lignes ou des colonnes pour accueillir des éléments supplémentaires.
Exemple :
.grid-container { display: grid; grid-template-columns: 100px 100px; grid-auto-rows: 50px; /* Implicitly adds rows */ }
Dans ce cas, la grille créera automatiquement de nouvelles lignes si plus d'éléments sont ajoutés que ne peuvent en contenir les colonnes définies.
Utilisons CSS Grid pour créer une mise en page pleine page réactive avec un en-tête, une zone de contenu principale, une barre latérale et un pied de page.
HTML :
<div class="grid-container"> <header class="header">Header</header> <nav class="sidebar">Sidebar</nav> <main class="main-content">Main Content</main> <footer class="footer">Footer</footer> </div>
CSS :
.grid-container { display: grid; grid-template-areas: "header header" "sidebar main" "footer footer"; grid-template-columns: 200px 1fr; grid-template-rows: auto 1fr auto; height: 100vh; /* Full height layout */ } .header { grid-area: header; background-color: #333; color: white; padding: 20px; text-align: center; } .sidebar { grid-area: sidebar; background-color: #f4f4f4; padding: 20px; } .main-content { grid-area: main; padding: 20px; } .footer { grid-area: footer; background-color: #333; color: white; padding: 10px; text-align: center; }
Dans cet exemple :
Prochaine étape : Dans la prochaine conférence, nous explorerons le Positionnement CSS et comment positionner des éléments à l'aide de propriétés telles que absolue, relative et fixe. Préparez-vous à améliorer encore davantage votre contrôle de mise en page !
Ridoy Hasan
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!