Stilregeln
Stilregeln sind die Grundlage von Sass, genau wie sie es für CSS sind. Und sie funktionieren auf die gleiche Weise: Sie wählen mit einem Selektor aus, welche Elemente gestylt werden sollen, und definieren Eigenschaften, die beeinflussen, wie diese Elemente aussehen.
SCSS-Syntax
.button {
padding: 3px 10px;
font-size: 12px;
border-radius: 3px;
border: 1px solid #e1e4e8;
}
Sass-Syntax
.button
padding: 3px 10px
font-size: 12px
border-radius: 3px
border: 1px solid #e1e4e8
CSS-Ausgabe
.button {
padding: 3px 10px;
font-size: 12px;
border-radius: 3px;
border: 1px solid #e1e4e8;
}
VerschachtelungVerschachtelung Permalink
Aber Sass möchte Ihnen das Leben erleichtern. Anstatt dieselben Selektoren immer wieder zu wiederholen, können Sie eine Stilregel innerhalb einer anderen schreiben. Sass kombiniert automatisch den Selektor der äußeren Regel mit dem der inneren Regel.
SCSS-Syntax
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
}
li { display: inline-block; }
a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
}
Sass-Syntax
nav
ul
margin: 0
padding: 0
list-style: none
li
display: inline-block
a
display: block
padding: 6px 12px
text-decoration: none
CSS-Ausgabe
nav ul {
margin: 0;
padding: 0;
list-style: none;
}
nav li {
display: inline-block;
}
nav a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
⚠️ Vorsicht!
Verschachtelte Regeln sind sehr hilfreich, aber sie können es auch schwierig machen, zu visualisieren, wie viel CSS Sie tatsächlich generieren. Je tiefer Sie verschachteln, desto mehr Bandbreite benötigt die Bereitstellung Ihres CSS und desto mehr Arbeit hat der Browser mit dem Rendern. Halten Sie diese Selektoren flach!
SelektorlistenSelektorlisten Permalink
Verschachtelte Regeln gehen clever mit Selektorlisten (d. h. kommagetrennten Selektoren) um. Jeder komplexe Selektor (die zwischen den Kommas) wird separat verschachtelt und dann wieder zu einer Selektorliste kombiniert.
SCSS-Syntax
.alert, .warning {
ul, p {
margin-right: 0;
margin-left: 0;
padding-bottom: 0;
}
}
CSS-Ausgabe
.alert ul, .alert p, .warning ul, .warning p {
margin-right: 0;
margin-left: 0;
padding-bottom: 0;
}
SelektorkombinatorenSelektorkombinatoren Permalink
Sie können auch Selektoren verschachteln, die Kombinatoren verwenden. Sie können den Kombinator am Ende des äußeren Selektors, am Anfang des inneren Selektors oder sogar ganz allein dazwischen setzen.
SCSS-Syntax
ul > {
li {
list-style-type: none;
}
}
h2 {
+ p {
border-top: 1px solid gray;
}
}
p {
~ {
span {
opacity: 0.8;
}
}
}
Sass-Syntax
ul >
li
list-style-type: none
h2
+ p
border-top: 1px solid gray
p
~
span
opacity: 0.8
CSS-Ausgabe
ul > li {
list-style-type: none;
}
h2 + p {
border-top: 1px solid gray;
}
p ~ span {
opacity: 0.8;
}
Erweitertes VerschachtelnErweitertes Verschachteln Permalink
Wenn Sie mit Ihren verschachtelten Stilregeln mehr tun möchten, als sie einfach nacheinander mit dem Nachfahren-Kombinator (einem einfachen Leerzeichen) zu kombinieren, der sie trennt, ist Sass für Sie da. Weitere Informationen finden Sie in der Dokumentation zum Elternselektor.
InterpolationInterpolation Permalink
Sie können Interpolation verwenden, um Werte aus Ausdrücken wie Variablen und Funktionsaufrufen in Ihre Selektoren einzufügen. Dies ist besonders nützlich, wenn Sie Mixins schreiben, da es Ihnen ermöglicht, Selektoren aus Parametern zu erstellen, die Ihre Benutzer übergeben haben.
SCSS-Syntax
@mixin define-emoji($name, $glyph) {
span.emoji-#{$name} {
font-family: IconFont;
font-variant: normal;
font-weight: normal;
content: $glyph;
}
}
@include define-emoji("women-holding-hands", "👭");
Sass-Syntax
@mixin define-emoji($name, $glyph)
span.emoji-#{$name}
font-family: IconFont
font-variant: normal
font-weight: normal
content: $glyph
@include define-emoji("women-holding-hands", "👭")
CSS-Ausgabe
@charset "UTF-8";
span.emoji-women-holding-hands {
font-family: IconFont;
font-variant: normal;
font-weight: normal;
content: "👭";
}
💡 Lustige Tatsache
Sass analysiert Selektoren erst, *nachdem* die Interpolation aufgelöst wurde. Das bedeutet, Sie können Interpolation sicher verwenden, um jeden Teil des Selektors zu generieren, ohne sich Sorgen machen zu müssen, dass er nicht analysiert wird.
Sie können Interpolation mit dem Elternselektor &, der @at-root Regel und Selektorfunktionen kombinieren, um beim dynamischen Generieren von Selektoren erhebliche Leistung zu erzielen. Weitere Informationen finden Sie in der Dokumentation zum Elternselektor .