Salut à tou(te)s,
Existe-t-il une méthode propre pour attribuer des borders aux éléments d'une grille (grid layout module) de telle sorte que celles-ci fusionnent lorsqu'elles sont adjacentes (à l'instar d'un "border-collapse: collapse" dans un tableau) ?
Pour l'instant, je parviens au résultat escompté en :
- fixant un gap de column et de row à "N px" ("N px" étant la size de la border virtuelle) ;
- attribuant une border à la grid (border extérieure) ;
- attribuant un background à la grid (dont la valeur sera la color de la border virtuelle) ;
- attribuant un background différent aux cells (dont la valeur est identique à celle du body) ;
- lorsque la taille des columns/rows est exprimée en pourcentage, en soustrayant à la valeur normale de la dernière column/row "N x (nombre de columns - 1)" ou "N x (nombre de rows - 1)" ;
Nota: lorsque la taille des columns/rows correspond à "auto", la dernière étape n'est pas nécessaire.
https://codepen.io/anon/pen/woNyJK?editors=1100
(l'exemple est trivial, imaginez une grille plus complexe)
Ça fonctionne et ça produit une "graceful degradation" pour les navigateurs qui ne supportent pas le grid layout module (contrairement à une approche consistant à attribuer de véritables borders à chaque cell/ensemble de cells individuellement)... mais ça relève du bidouillage et ça casse le principe des grids dans la mesure où mes CSS dépendent directement de la position de mes cells.
Une meilleure idée ?
Modifié par Akhilleus (19 Dec 2016 - 15:46)
Existe-t-il une méthode propre pour attribuer des borders aux éléments d'une grille (grid layout module) de telle sorte que celles-ci fusionnent lorsqu'elles sont adjacentes (à l'instar d'un "border-collapse: collapse" dans un tableau) ?
Pour l'instant, je parviens au résultat escompté en :
- fixant un gap de column et de row à "N px" ("N px" étant la size de la border virtuelle) ;
- attribuant une border à la grid (border extérieure) ;
- attribuant un background à la grid (dont la valeur sera la color de la border virtuelle) ;
- attribuant un background différent aux cells (dont la valeur est identique à celle du body) ;
- lorsque la taille des columns/rows est exprimée en pourcentage, en soustrayant à la valeur normale de la dernière column/row "N x (nombre de columns - 1)" ou "N x (nombre de rows - 1)" ;
Nota: lorsque la taille des columns/rows correspond à "auto", la dernière étape n'est pas nécessaire.
https://codepen.io/anon/pen/woNyJK?editors=1100
(l'exemple est trivial, imaginez une grille plus complexe)
Ça fonctionne et ça produit une "graceful degradation" pour les navigateurs qui ne supportent pas le grid layout module (contrairement à une approche consistant à attribuer de véritables borders à chaque cell/ensemble de cells individuellement)... mais ça relève du bidouillage et ça casse le principe des grids dans la mesure où mes CSS dépendent directement de la position de mes cells.
Une meilleure idée ?
Modifié par Akhilleus (19 Dec 2016 - 15:46)