Imbrication
Pour réduire l'écriture, SASS permet d'imbriquer les sélecteurs.
Méthode : imbrication
1
.maClasse{
2
color: red;
3
p {
4
border: 2px solid black;
5
}
6
}
Ce qui donne
1
.maClasse {
2
color: red;
3
}
4
.maClasse p {
5
border: 2px solid black;
6
}
Définition : Référence au sélecteur
On peut faire référence au sélecteur avec le symbole &
1
.maClasse{
2
color: red;
3
&:hover {
4
border: 2px solid black;
5
}
6
&-2 {
7
border: 1px solid white;
8
}
9
}
Ce qui donne
1
.maClasse {
2
color: red;
3
}
4
.maClasse:hover {
5
border: 2px solid black;
6
}
7
.maClasse-2 {
8
border: 1px solid white;
9
}
Définition : Extension
Un peut comme des variables, on peut créer des blocs de règles réutilisable
1
%bloc{
2
color: red;
3
}
4
.classe1{
5
@extend %bloc;
6
font-style: normal;
7
}
8
.classe2{
9
@extend %bloc;
10
font-style: italic;
11
}
Ce qui donne
1
.classe1, .classe2 {
2
color: red;
3
}
4
.classe1 {
5
font-style: normal;
6
}
7
.classe2 {
8
font-style: italic;
9
}
On peut aussi étendre un bloc "classique"
1
.maClasse{
2
color: red;
3
}
4
.autreClasse{
5
@extend .maClasse;
6
font-style: normal;
7
}
Ce qui donne
1
.maClasse, .autreClasse {
2
color: red;
3
}
4
5
.autreClasse {
6
font-style: normal;
7
}
Définition : Mixin
Les mixins, comme les extends permettent de récupérer des morceaux de code.
Elles ont l'avantage d’être paramétrable.
1
@mixim bloc{
2
color: red;
3
}
4
.classe1{
5
@extend %bloc;
6
font-style: normal;
7
}
8
.classe2{
9
@extend %bloc;
10
font-style: italic;
11
}
Ce qui donne
1
.classe1 {
2
color: red;
3
font-style: normal;
4
}
5
6
.classe2 {
7
color: red;
8
font-style: italic;
9
}
Avec paramètre
1
@mixin bloc($couleur: red){
2
color: $couleur;
3
}
4
.classe1{
5
@include bloc;
6
font-style: normal;
7
}
8
.classe2{
9
@include bloc(blue);
10
font-style: italic;
11
}
Ce qui donne
1
.classe1 {
2
color: red;
3
font-style: normal;
4
}
5
6
.classe2 {
7
color: blue;
8
font-style: italic;
9
}