2014-04-22 13 views
5

Wie kann ich das Stammelement der übergeordneten Selektorkette ändern? (Unter Verwendung von Sass 3.3.x) So etwas wie ...So ändern Sie den Stammelternselektor in Sass

=prepend($prefix) 
    @at-root .#{$prefix}#{&} // note there is no dot (.) separating it 
    @content 

.foo 
    .bar 
    +prepend(baz) 
     background: red  

und zurück

.baz.foo .bar { 
    background: red; 
} 

oder noch besser ... eine explizite Weise das Wurzelelement (oder auch das n-te Element) zum Ziel? diese

+0

Das gleiche Problem hier. Es scheint, dass SASS nur den einfacheren Anwendungsfall unterstützt, in dem Sie den Inhalt des aktuellen Selektors mit einer anderen Klasse umhüllen, ala http://stackoverflow.com/questions/19563128. Dies wäre sehr praktisch, um browser- oder gerätespezifische Überschreibungen innerhalb größerer Regelwerke inline zu setzen. – peteorpeter

Antwort

0
=prepend($prefix) 
    &.#{$prefix} 
    @content 

.foo 
    +prepend("baz") 
    .bar 
     background: red 

Returns:

.foo.baz .bar { 
    background: red; 
} 

Auf dem richtigen Weg?

+0

Ich möchte in der Lage sein, an der Wurzel irgendwo im Baum voranzustellen. Diese Lösung funktioniert nur, wenn das Mixin direkt vom übergeordneten Element verwendet wird. – brewster

+0

@brewster also unter welchen Bedingungen werden unterschiedliche Ergebnisse ausgelöst? mehr Beispiele für Ihre Erwartungen wären hilfreich. – artlung

Verwandte Themen