SASS – Leçon 5 : les conditions et les boucles
Les conditions
Avec les conditions, il est possible de vérifier certaines informations dans notre fichier SCSS. Par exemple, si la couleur est égale à orange, alors on définie de nouveaux parametres :
// définition des variables '$shadow' et '$color' | |
$shadow: '"'; | |
$color: orange; | |
// Si $color est égale à 'orange' | |
@if ($color == orange) { | |
// Alors shadow vaut : | |
$shadow: 0 0 5px black | |
} | |
// Sinon si $color est égale à 'blue' | |
@elseif ($color == blue) { | |
// Il est également possible de redéfinir la variable | |
$color: pink; | |
$shadow: 0 5px 0 red; | |
} | |
// Sinon, $shadow prendra les valeurs | |
@else { | |
$shadow: 5px 5px white; | |
} | |
.maClass { | |
color: $color; | |
box-shadow: $shadow; | |
} |
CSS généré :
.maClass { | |
color: orange; | |
box-shadow: 0 0 5px black; | |
} |
Grâce à cette condition, il est possible de changer la valeur de $shadow en paramétrant $color. Dans cet exemple, nous vérifions la valeur de $color, néanmoins, plusieurs autres comparaisons sont possible. Découvrez tous les control directive de SASS.
Les boucles
Les boucles permettent de répéter une instruction autant de fois que vous le souhaitez.
La boucle @for
@for $i from 1 through 6 { | |
.grid-#{$i} { | |
width: 100px*$i; | |
} | |
} |
CSS généré :
.grid-1 { width: 100px; } | |
.grid-2 { width: 200px; } | |
.grid-3 { width: 300px; } | |
.grid-4 { width: 400px; } | |
.grid-5 { width: 500px; } | |
.grid-6 { width: 600px; } |
La boucle @while
$i: 6; | |
@while $i > 0 { | |
.item-#{$i} { width: 2em * $i; } | |
$i: $i - 2; | |
} |
CSS généré :
.item-6 { width: 12em; } | |
.item-4 { width: 8em; } | |
.item-2 { width: 4em; } |
La boucle @each
// @each permet de parcourir une liste : | |
@each $animal in puma, sea-slug, egret, salamander { | |
.#{$animal}-icon { | |
background-image: url('/images/#{$animal}.png'); | |
} | |
} |
CSS généré :
.puma-icon { | |
background-image: url('/images/puma.png'); | |
} | |
.sea-slug-icon { | |
background-image: url('/images/sea-slug.png'); | |
} | |
.egret-icon { | |
background-image: url('/images/egret.png'); | |
} | |
.salamander-icon { | |
background-image: url('/images/salamander.png'); | |
} |
Cette liste peut être définie dans une variable (comparable aux tableaux en PHP). Chaque valeur doit être séparée par une virgule.
Exemple : $var: puma, sea-slug, egret, salamander;