Sass 'if' - Anweisung basierend auf bestehenden Klasse
Ich bin neu und Sass möchte die 'if' - Anweisung zum erkennen einer vorhandenen Klasse auf ein element, um zu erzeugen können Sie die entsprechende css.
Mein setup hat eine große Anzahl von Javascript-generierte Bilder, die eine eindeutige ID zugewiesen, sowie eine Klasse von "Bild" und zufällig zugewiesene Klasse entweder oben, rechts, unten oder Links.
Ich bin auch mit einem random-Funktion für Sass (gefunden hier: https://gist.github.com/chriseppstein/1561650), und würde gerne einen anderen Wert zugewiesen jede ID, so dass jedes element nach dem Zufallsprinzip.
Meine SCSS hat die folgenden, die Positionen der Bilder auf, welcher Klasse es zugeordnet wurde:
@for $i from 0 through $number-of-pictures {
#picture-#{$i}{
&.top {
left: random($stage-width);
}
&.right {
top: random($stage-height);
}
&.bottom {
left: random($stage-width);
}
&.left {
top: random($stage-height);
}
}
}
Dies funktioniert gut, aber erstellt eine Tonne von ungenutzten Erklärung blockiert. Zum Beispiel, die #Bild-38 zugewiesen wurde, die die Klasse ".top", also alles, was ich brauche, ist die erste Erklärung blockieren, aber die CSS-exportiert alle Optionen:
#picture-38.top {
left: 38px; //This is a random number that is different for each ID.
}
#picture-38.right {
top: 28px;
}
#picture-38.bottom {
left: 12px;
}
#picture-38.left {
top: 47px;
}
Was ich brauche, ist eine wenn-Anweisung, die erkennt, wenn das element hat eine Klasse, bevor das Parsen von css. So etwas wie:
@if "#picture-#{$i} has class $class-top" {
&.top {
left: random($stage-width);
}
}
Irgendwelche Ideen?
Verwandte: stackoverflow.com/questions/18851502/...
InformationsquelleAutor zoosrc | 2014-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Antwort ist, Sie können dies nicht mit SASS/SCSS.
Sie versuchen zu erkennen, die Besitz/Zuordnung einer Klasse zu einem DOM-element.
Den Weg, um die Interaktion mit DOM-Elemente ist JavaScript
Was Sie tun müssen, ist, verwenden Sie JavaScript, um zu erkennen, wenn "Bild-x#" class "- Klasse-top" und dann eine zufällige
top
Wert entsprechend.E. g.
Sidenote:
top
erfordert eine Maßeinheit (z.B.px
), daher der+ 'px'
InformationsquelleAutor Douglas Denhartog
Bisschen alt, aber ich arbeitete auf etwas ähnliches vor kurzem - hier habe ich ein array verwenden, um eine Schleife durch die unterschiedlichen Klassen von Schaltflächen und fügen Sie Stile entsprechend.
Bitte beachten Sie, dass es Variablen im code-snippet, die nicht deklariert sind.
InformationsquelleAutor Jamie Paterson