Vous recherchez la @content
directive:
@mixin placeholder {
::-webkit-input-placeholder {@content}
:-moz-placeholder {@content}
::-moz-placeholder {@content}
:-ms-input-placeholder {@content}
}
@include placeholder {
font-style:italic;
color: white;
font-weight:100;
}
La référence SASS contient plus d'informations, qui peuvent être trouvées ici:
http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#mixin-content
Depuis Sass 3.4, ce mixin peut être écrit comme ceci pour fonctionner à la fois imbriqué et non imbriqué:
@mixin optional-at-root($sel) {
@at-root #{if(not &, $sel, selector-append(&, $sel))} {
@content;
}
}
@mixin placeholder {
@include optional-at-root('::-webkit-input-placeholder') {
@content;
}
@include optional-at-root(':-moz-placeholder') {
@content;
}
@include optional-at-root('::-moz-placeholder') {
@content;
}
@include optional-at-root(':-ms-input-placeholder') {
@content;
}
}
Usage:
.foo {
@include placeholder {
color: green;
}
}
@include placeholder {
color: red;
}
Production:
.foo::-webkit-input-placeholder {
color: green;
}
.foo:-moz-placeholder {
color: green;
}
.foo::-moz-placeholder {
color: green;
}
.foo:-ms-input-placeholder {
color: green;
}
::-webkit-input-placeholder {
color: red;
}
:-moz-placeholder {
color: red;
}
::-moz-placeholder {
color: red;
}
:-ms-input-placeholder {
color: red;
}
&
est nécessaire si vous voulez pouvoir obtenir un sélecteur commeinput::-webkit-input-placeholder
avec le mixin, mais cela vous empêchera de l'utiliser au niveau racine. sassmeister.com/gist/9469073 . Maintenant, si vous utilisez LibSass, c'est une autre histoire.J'ai trouvé que l'approche donnée par cimmanon et Kurt Mueller fonctionnait presque, mais que j'avais besoin d'une référence parent (c'est-à-dire que je dois ajouter le préfixe «&» à chaque préfixe de fournisseur); comme ça:
J'utilise le mixin comme ceci:
Avec la référence parent en place, le css correct est généré, par exemple:
Sans la référence parent (&), un espace est inséré avant le préfixe du fournisseur et le processeur CSS ignore la déclaration; qui ressemble à ceci:
la source
&
est totalement nécessaire. Modification de la réponse populaire pour refléter cela.::placeholder
propriété officielle maintenant, je vous recommande donc d'ajouter ceci en haut:&::placeholder {@content}
Ceci est pour la syntaxe abrégée
utilisez-le comme
la source
Pourquoi pas quelque chose comme ça?
Il utilise une combinaison de listes, d'itérations et d'interpolation.
la source
Pour éviter les erreurs 'Unclosed block: CssSyntaxError' générées par les compilateurs sass, ajoutez un ';' à la fin de @content.
la source
J'utilise exactement le même espace réservé sass mixin que NoDirection a écrit. Je le trouve dans la collection sass mixins ici et j'en suis très satisfait. Il y a un texte qui explique davantage une option mixins.
la source