La directive @extend
en Sass (Syntactically Awesome Stylesheets) est un outil puissant pour partager les règles et les relations entre les sélecteurs. Elle aide essentiellement à hériter les styles d'un sélecteur à un autre. C'est cette fonctionnalité qui est la plus adaptée pour répondre à la question.
En utilisant @extend
, vous pouvez dire à un sélecteur de prendre toutes les règles CSS d'un autre sélecteur
Voici un exemple simple pour illustrer comment cela fonctionne.
.btn {
padding: 10px;
border-radius: 5px;
color: white;
}
.btn-primary {
@extend .btn;
background: blue;
}
.btn-danger {
@extend .btn;
background: red;
}
Dans cet exemple, .btn-primary
et .btn-danger
hériteront tous deux les styles de padding, border-radius et color de .btn
grâce à la directive @extend
. Le résultat CSS sera comme suit :
.btn, .btn-primary, .btn-danger {
padding: 10px;
border-radius: 5px;
color: white;
}
.btn-primary {
background: blue;
}
.btn-danger {
background: red;
}
Bien que @extend
soit très puissant, il est important de noter certaines pratiques recommandées pour son utilisation.
@extend
à l'intérieur des médias queries. Sass ne permet pas actuellement d'étendre les styles à l'intérieur des requêtes @media, ce qui peut conduire à des résultats inattendus.@extend
avec le %
placeholder pour éviter la duplication inutile de code. Les placeholders sont des sélecteurs qui ne sont pas rendus dans le CSS final à moins qu'ils ne soient étendus.En conclusion, @extend
est un outil essentiel pour partager les styles à travers plusieurs sélecteurs en Sass, permettant une organisation et une efficacité accrues dans votre code.