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?

Ich glaube nicht, dass dies möglich ist mit SASS (oder andere preprocessor).
Verwandte: stackoverflow.com/questions/18851502/...

InformationsquelleAutor zoosrc | 2014-02-26

Schreibe einen Kommentar