Szukasz @content
dyrektywy:
@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;
}
Więcej informacji można znaleźć tutaj:
http://sass-lang.com/docs/yardoc/file.SASS_REFERENCE.html#mixin-content
Począwszy od Sass 3.4, ten mixin można napisać tak, aby działał zarówno zagnieżdżony, jak i niezagnieżdżony:
@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;
}
}
Stosowanie:
.foo {
@include placeholder {
color: green;
}
}
@include placeholder {
color: red;
}
Wynik:
.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;
}
&
to konieczne, jeśli chcesz mieć selektor podobnyinput::-webkit-input-placeholder
do miksu, ale uniemożliwi to użycie go na poziomie root. sassmeister.com/gist/9469073 . Jeśli używasz LibSass, to inna historia.Okazało się, że podejście podane przez cimmanona i Kurta Muellera prawie zadziałało, ale potrzebowałem odniesienia nadrzędnego (tj. Muszę dodać przedrostek „&” do każdego przedrostka dostawcy); lubię to:
Używam miksu w ten sposób:
Po umieszczeniu referencji rodzica generowany jest poprawny css, np .:
Bez odniesienia nadrzędnego (&) spacja jest wstawiana przed prefiksem dostawcy, a procesor CSS ignoruje deklarację; wygląda to tak:
źródło
&
to całkowicie konieczne. Zredagował popularną odpowiedź, aby to odzwierciedlić.::placeholder
teraz oficjalną właściwość, więc polecam dodanie tego u góry:&::placeholder {@content}
To jest dla skróconej składni
użyj go jak
źródło
Dlaczego nie coś takiego?
Używa kombinacji list, iteracji i interpolacji.
źródło
Aby uniknąć błędów „Unclosed block: CssSyntaxError” wyrzucanych przez kompilatory sass, należy dodać znak „;” do końca @content.
źródło
Używam dokładnie tego samego symbolu zastępczego mixin sass, jak napisał NoDirection. Znajduję go w kolekcji miksów sassowych tutaj i jestem z niego bardzo zadowolony. Jest tekst, który wyjaśnia więcej opcji mieszania.
źródło