CSS Grid Level 3, alias les mises en page « Masonry », demande votre aide pour les inventer
(webkit.org)-
Une proposition est en cours pour ajouter la mise en page Masonry de CSS Grid (également appelée disposition en briques ou en cascade) à CSS Grid Level 3
- La mise en page Masonry est un modèle qui remplit densément le contenu comme un mur de briques ou de pierres, en permettant de disposer des éléments de tailles différentes sans les rogner ni les omettre, tout en les faisant s’écouler par colonnes
- C’est une mise en page qu’il était difficile d’implémenter uniquement en CSS, sans JavaScript
-
Quatre démos ont été créées pour explorer l’implémentation d’un mécanisme Masonry en CSS
- Créer une mise en page Masonry / en cascade classique
- Exploiter les diverses fonctionnalités de définition de colonnes de Grid
- Exploiter les fonctionnalités de fusion de colonnes de Grid
- Utiliser
subgridet le placement explicite
-
La combinaison des nombreuses fonctionnalités de Grid avec Masonry permet d’obtenir des mises en page bien plus créatives et dynamiques
- Définition souple et variée de la taille des colonnes avec l’unité
fr,max-content,min-content, la fonctionminmax(), etc. - Fusion de colonnes pour mettre en valeur certains éléments ou composer des grilles plus variées
subgridpour aligner les pistes d’une grille imbriquée sur celles du parent- Placement explicite pour définir la position de certains éléments comme les en-têtes
- Définition souple et variée de la taille des colonnes avec l’unité
-
Certains soutiennent que la mise en page Masonry devrait être séparée dans un type
displaydistinct- Des inquiétudes existent sur le fait que combiner CSS Grid et Masonry augmente la complexité et puisse nuire aux performances
- Séparer Masonry de Grid permettrait de faire évoluer indépendamment les fonctionnalités de chacun
- Mais certains estiment aussi que Masonry ne devrait être implémenté que comme une disposition à colonnes de taille identique, plus limitée
-
L’auteur considère qu’inclure la fonctionnalité Masonry dans CSS Grid présente davantage d’avantages
- La spécification CSS Grid Level 3 est déjà rédigée et implémentée dans deux moteurs de navigateur
- À l’avenir, les mêmes nouvelles fonctionnalités pourront être proposées à Grid et à Masonry (par exemple, le stylage des pistes)
- Masonry est aussi une forme de Grid, ce qui en fait un bon ajustement sur le plan conceptuel
-
L’auteur souhaite recueillir l’avis des web designers et développeurs
- Masonry doit-il faire partie de CSS Grid ?
- Souhaitez-vous pouvoir utiliser toutes les fonctionnalités de Grid, comme les tailles de colonnes variées, la fusion de colonnes, le placement et
subgrid? Ou vaut-il mieux ne prendre en charge que des colonnes de taille identique ? - Comment utiliseriez-vous cette fonctionnalité ? Quels types de mises en page pourriez-vous créer ?
- Si vous avez créé vos propres démos, merci de les partager
- Existe-t-il des mises en page difficiles à implémenter avec ce modèle ?
-
Le nom Masonry n’est peut-être pas approprié. Une syntaxe comme
grid-template-rows: off, au sens de « supprimer les lignes », pourrait être envisagée. Gardez à l’esprit que le nom pourrait changer à l’avenir
L’avis de GN⁺
- Ajouter la fonctionnalité Masonry à CSS Grid serait, selon nous, une évolution significative qui pourrait fortement accroître la capacité d’expression des mises en page web. En particulier, le fait de pouvoir implémenter facilement des grilles en colonnes orientées verticalement est très séduisant
- En revanche, il est difficile d’adhérer à l’idée de séparer Masonry dans un type
displaydistinct et d’en limiter les fonctionnalités. Au contraire, il semble que la combinaison avec les puissantes capacités de Grid élargirait encore davantage les usages possibles des mises en page Masonry - Cela dit, le nom Masonry n’est pas très intuitif et peut prêter à confusion. Il vaudrait donc la peine d’envisager une autre appellation pour désigner une grille dédiée aux colonnes. Une syntaxe comme
grid-template-rows: none, qui exprime clairement l’idée d’une « grille sans lignes », semblerait préférable - Cette proposition pourrait faire de CSS Grid un outil encore plus puissant. Il semble important d’expérimenter différents cas de mise en page et de faire activement remonter des avis
1 commentaires
Avis Hacker News
Résumé :
displayselon les besoinsbreak-inside: avoiddisplay:inline-blockpour traiter les photos comme du texte et les faire se redistribuer à la ligne suivante