Ich habe diese Variable:
$Gutter: 10;
Ich möchte es in einem Selector wie SCSS verwenden:
.grid+$Gutter {
background: red;
}
so wird die Ausgabe zu CSS:
.grid10 {
background: red;
}
Das geht aber nicht. Ist es möglich?
$Gutter: 10;
.grid#{$Gutter} {
background: red;
}
Wenn in einem String zum Beispiel in einer URL verwendet:
background: url('/ui/all/fonts/#{$filename}.woff')
Aus der Sass-Referenz zu "Interpolation" :
Sie können SassScript-Variablen auch in Selektoren und Eigenschaftennamen verwenden, indem Sie die Interpolationssyntax # {} verwenden:
$Gutter: 10;
.grid#{$Gutter} {
background: red;
}
Darüber hinaus ist die Direktive @each
nicht erforderlich, damit die Interpolation funktioniert. Da Ihr $Gutter
nur einen Wert enthält, ist keine Schleife erforderlich.
Wenn Sie mehrere Werte zum Erstellen von Regeln haben, können Sie eine Sass-Liste verwenden und @each
:
$grid: 10, 40, 120, 240;
@each $i in $grid {
.g#{$i}{
width: #{$i}px;
}
}
... um folgende Ausgabe zu erzeugen:
.g10 { width: 10px; }
.g40 { width: 40px; }
.g120 { width: 120px; }
.g240 { width: 240px; }
Hier ist die Lösung
$Gutter: 10;
@each $i in $Gutter {
.g#{$i}{
background: red;
}
}
wenn es ein Herstellerpräfix wäre, wurde das Mixin in meinem Fall nicht kompiliert. Also habe ich dieses Beispiel verwendet
@mixin range-thumb()
-webkit-appearance: none;
border: 1px solid #000000;
height: 36px;
width: 16px;
border-radius: 3px;
background: #ffffff;
cursor: pointer;
margin-top: -14px;
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
input[type=range]
&::-webkit-slider-thumb
@include range-thumb()
&::-moz-range-thumb
@include range-thumb()
&::-ms-thumb
@include range-thumb()