Retenir : lorsqu’on redéfinit ponctuellement la valeur de la variable $grid-columns
pour créer une batterie de styles spécifique à un affichage en x (autre que la valeur par défaut qui est 12) colonnes, il faut penser à redéclarer systématiquement la valeur par défaut juste après. Cf. l’exemple ci-dessous.
Source : Bootstrap: Advanced Grid Tricks (sous-partie Redefining grid-columns).
Le truc ici est de réaliser qu’SCSS parse de haut en bas et qu’à partir du moment où il atteint la partie de notre code où nous cherchons à redéfinir la variable $grid-columns
les propriétés précédentes ont déjà été générées.
Si nous changeons la valeur de $grid-columns
à 5 pour générer une batterie de styles spécifiques pour une grille 5 colonnes et que nous remettons cette valeur à la valeur par défaut (12) ensuite, nous n’obtiendrons pas d’effets de bord.
|
$grid-columns: 5; @include make-grid(xs); $grid-columns: 12; |
Dans l’exemple ci-dessus, des classes .col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4 et .col-xs-5
seront générées pour créer une mise en page sur 5 colonnes (réparties sur 100% de largeur) par rangée.
Créer une batterie de classes pour une grille 5 colonnes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
$grid-columns: 5; // on définit la valeur de $grid-columns à 5 pour 5 colonnes par rangées [class*="col-five-"],[class^="col-five-"]{ position: relative; min-height: 1px; padding-left: $grid-gutter-width / 2; padding-right: $grid-gutter-width / 2; float: left; } @include make-grid(five-xs); // Small grid @media (min-width: $screen-sm-min) { @include make-grid(five-sm); } // Medium grid @media (min-width: $screen-md-min) { @include make-grid(five-md); } // Large grid @media (min-width: $screen-lg-min) { @include make-grid(five-lg); } $grid-columns: 12; // suite à la génération de nos nouvelles classes, on réinitialise immédiatement la valeur de $grid-columns à 12 (ou 12 est la valeur par défaut dans _variables.scss de bootstrap) |