-
Está em andamento uma proposta para adicionar o layout Masonry do CSS Grid (também chamado de layout de tijolos empilhados ou cascata) ao CSS Grid Level 3
- O layout Masonry é um padrão que preenche o conteúdo de forma compacta, como tijolos ou uma parede de pedras, permitindo posicionar conteúdos de tamanhos diferentes sem cortá-los ou omiti-los, fazendo o conteúdo fluir por colunas
- Trata-se de um layout que era difícil de implementar apenas com CSS, sem JavaScript
-
Foram criadas 4 demos para implementar o mecanismo Masonry em CSS
- Criar um layout Masonry/cascata clássico
- Aproveitar os diversos recursos de definição de colunas do Grid
- Aproveitar o recurso de mesclagem de colunas do Grid
- Usar Subgrid e posicionamento explícito
-
Combinar os diversos recursos do Grid com Masonry permite criar layouts muito mais criativos e dinâmicos
- Definição flexível e variada do tamanho das colunas com unidades
fr,max-content,min-contente a funçãominmax() - Mesclagem de colunas para destacar determinados itens ou compor grades mais variadas
- Subgrid para alinhar as trilhas de grades aninhadas à grade pai
- Posicionamento explícito para definir a localização de itens específicos, como cabeçalhos
- Definição flexível e variada do tamanho das colunas com unidades
-
Também há quem defenda que o layout Masonry deva ser separado como um tipo de
displaypróprio- Há preocupações de que combinar CSS Grid e Masonry aumente a complexidade e possa impactar negativamente o desempenho
- Separar Masonry do Grid permitiria evoluir cada funcionalidade de forma independente
- Mas também existe a opinião de que Masonry deveria ser implementado apenas como um layout limitado a colunas de mesmo tamanho
-
Considera-se que incluir o recurso Masonry no CSS Grid traz mais vantagens
- A especificação do CSS Grid Level 3 já foi escrita e implementada em dois motores de navegador
- No futuro, seria possível oferecer os mesmos novos recursos para Grid e Masonry (por exemplo: estilização de trilhas)
- Masonry também é um tipo de Grid, então faz sentido também no plano conceitual
-
Gostariam de ouvir a opinião de web designers e desenvolvedores
- O Masonry deve fazer parte do CSS Grid?
- Gostariam de poder usar todos os recursos do Grid, como definição variada de tamanhos de coluna, mesclagem de colunas, posicionamento e Subgrid? Ou seria melhor oferecer suporte apenas a colunas de mesmo tamanho?
- Como vocês usariam esse recurso? Que tipos de layout poderiam criar?
- Se tiverem demos próprias, compartilhem
- Há layouts que seriam difíceis de implementar com esse modelo?
-
O nome Masonry pode não ser o mais apropriado. Vale considerar uma sintaxe como
grid-template-rows: off, no sentido de eliminar as linhas. Tenha em mente que o nome pode mudar no futuro
Opinião do GN⁺
- A adição do recurso Masonry ao CSS Grid parece ser uma mudança significativa, capaz de ampliar bastante o poder de expressão dos layouts na web. Em especial, a possibilidade de implementar com facilidade grades em colunas, organizadas apenas na direção vertical, é bastante atraente
- Por outro lado, é difícil concordar com a proposta de separar Masonry como um tipo de
displayindependente e limitar suas funcionalidades. Pelo contrário, ao ser combinado com os recursos avançados do Grid, o alcance de uso do layout Masonry tende a ser ainda maior - Ainda assim, o nome Masonry não é muito intuitivo e pode causar confusão, então talvez valha a pena considerar outra denominação que represente melhor uma grade voltada apenas a colunas. Uma sintaxe como
grid-template-rows: none, por exemplo, pode transmitir com mais clareza a ideia de uma “grade sem linhas” - Espera-se que essa proposta possa tornar o CSS Grid uma ferramenta ainda mais poderosa. Parece importante experimentar diferentes casos de layout e apresentar opiniões ativamente
1 comentários
Opinião do Hacker News
Resumo:
break-inside: avoiddisplay:inline-blockpara tratar as fotos como texto e fazê-las refluírem para uma nova linha