TL;DR : Y a-t-il quelque chose comme table-layout: fixed
pour les grilles CSS ?
J'ai essayé de créer un calendrier annuel avec une grande grille 4x3 pour les mois et des grilles 7x6 imbriquées pour les jours.
Le calendrier doit remplir la page, donc le conteneur de la grille de l'année reçoit une largeur et une hauteur de 100% chacune.
.year-grid {
width: 100%;
height: 100%;
display: grid;
grid-template: repeat(3, 1fr) / repeat(4, 1fr);
}
.month-grid {
display: grid;
grid-template: repeat(6, 1fr) / repeat(7, 1fr);
}
Voici un exemple concret : https://codepen.io/loilo/full/ryXLpO/
Pour simplifier, chaque mois de ce stylo compte 31 jours et commence un lundi.
J'ai également choisi une taille de police ridiculement petite pour démontrer le problème :
Les éléments de la grille (= cellules de jour) sont assez condensés car il y en a plusieurs centaines sur la page. Et dès que les étiquettes des numéros de jour deviennent trop grandes (n'hésitez pas à jouer avec la taille de la police dans le stylo en utilisant les boutons en haut à gauche), la grille s'agrandit et dépasse la taille du corps de la page.
Existe-t-il un moyen d'empêcher ce comportement ?
J'ai initialement déclaré que ma grille d'année devait avoir une largeur et une hauteur de 100 %, c'est donc probablement le point de départ, mais je n'ai trouvé aucune propriété CSS liée à la grille qui aurait pu répondre à ce besoin.
Avis de non-responsabilité : Je suis conscient qu'il existe des moyens assez simples de styliser ce calendrier sans utiliser la grille CSS. Cependant, cette question concerne davantage les connaissances générales sur le sujet que la résolution d'un exemple concret.
0 votes
Que voulez-vous qu'il se passe à la place ? La police de chaque cellule peut être de n'importe quelle taille et la taille de la cellule de la grille n'augmente jamais ?
1 votes
Exactement. En fait, c'est une façon plus pratique de faire ce qui se passerait si je définissais les tailles des éléments de la grille en fonction de valeurs en pourcentage au lieu de fractions.
0 votes
Je suis essentiellement à la recherche d'une version grid-layouty de table-layout : fixed (voir : codepen.io/loilo/pen/dvxpvq?editors=1100 )
36 votes
C'est la plus grande difficulté de toute la spécification CSS Grid. Il doit y avoir un paramètre où les zones de la grille ne peuvent pas échapper aux dimensions de leurs conteneurs de grille parents ! En l'état, c'est un cauchemar pour les structures de grille profondément imbriquées.