TL; DR: Existe algo parecido table-layout: fixed
com grades CSS?
Tentei criar um calendário de exibição do ano com uma grande grade 4x3 durante os meses e aninhar grades 7x6 durante os dias.
O calendário deve preencher a página, para que o contêiner da grade do ano tenha uma largura e altura de 100% cada.
.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);
}
Aqui está um exemplo de trabalho: https://codepen.io/loilo/full/ryXLpO/
Por uma questão de simplicidade, todos os meses nessa caneta têm 31 dias e começam na segunda-feira.
Também escolhi um tamanho de fonte ridiculamente pequeno para demonstrar o problema:
Os itens de grade (= células do dia) são bastante condensados, pois existem várias centenas na página. E assim que os rótulos dos números do dia ficarem muito grandes (sinta-se à vontade para brincar com o tamanho da fonte na caneta usando os botões no canto superior esquerdo), a grade aumentará de tamanho e excederá o tamanho do corpo da página.
Existe alguma maneira de impedir esse comportamento?
Inicialmente, declarei que minha grade do ano tem 100% de largura e altura, então esse é provavelmente o ponto de partida, mas não consegui encontrar nenhuma propriedade CSS relacionada à grade que atendesse a essa necessidade.
Isenção de responsabilidade: estou ciente de que existem maneiras muito fáceis de estilizar esse calendário sem usar o CSS Grid Layout. No entanto, essa pergunta é mais sobre o conhecimento geral sobre o tema do que resolver o exemplo concreto.