.grid-container {
display: grid;
/* Colonnes responsive */
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
/* ou */
grid-template-columns: 1fr 2fr 1fr;
/* Rangées automatiques */
grid-auto-rows: minmax(100px, auto);
/* Espacement */
gap: 20px;
/* Responsive avec media queries */
@media (max-width: 768px) {
grid-template-columns: 1fr;
}
}
/* Exemple de grille responsive adaptative */
.adaptive-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1rem;
padding: 1rem;
}
/* Grille avec zones de tailles différentes */
.mixed-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-auto-rows: minmax(100px, auto);
gap: 1rem;
}
.featured {
grid-column: span 2;
grid-row: span 2;
}
.grid-container {
display: grid;
grid-template-areas:
"header header header"
"sidebar main main"
"footer footer footer";
grid-template-columns: 200px 1fr 1fr;
grid-template-rows: auto 1fr auto;
min-height: 100vh;
gap: 20px;
}
/* Attribution des zones */
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }
.footer { grid-area: footer; }
/* Responsive Layout */
@media (max-width: 768px) {
.grid-container {
grid-template-areas:
"header"
"main"
"sidebar"
"footer";
grid-template-columns: 1fr;
}
}
/* Layout complexe */
.complex-grid {
display: grid;
grid-template-areas:
"nav nav nav"
"side main main"
"side main main"
"footer footer footer";
grid-template-columns: 200px 1fr 1fr;
grid-template-rows: 60px 1fr 1fr 60px;
}
/* Auto-fit : s'adapte à la largeur */
.auto-fit-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1rem;
}
/* Auto-fill : remplit avec des colonnes vides */
.auto-fill-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 1rem;
}
/* Combinaison avec des tailles minimales */
.responsive-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
gap: 1rem;
}
/* Grille dense */
.dense-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
grid-auto-flow: dense;
gap: 1rem;
}