2012-07-30 4 views
19

Okay, das hat mich gestört, seit ich Sass/Scss für das letzte Jahr oder so verwendet habe. Ich verstehe den Elternselektor in seinem allgemeinen Sinn.Verwenden des kaufmännischen Undersands (SASS Eltern Selektor) in verschachtelten Selektoren

Dies ist, wo ich kämpfen (ob es nicht dokumentiert ist oder möglich, nur nicht):

#parent { 
    #child { 
    width: 75%; 

    .additional_parent_class & { 
     width: 50%; 
    } 
    } 
} 

Dies wird in grundsätzlich drehen:

.additional_parent_class #parent #child { 
    width: 50%; 
} 

Während dieser Sinn für die aufgrund der Umsetzung macht kaufmännisches Und und wie es benutzt wird. Was passiert, wenn ich es bekommen werde versuchen, dies zu erreichen:

#parent.additional_parent_class #child { 
    width: 50%; 
} 

Der einzige Weg, ich in der Lage gewesen, dies zu erreichen, ist durch eine weitere Regel außerhalb der Kinder Erklärungen zu schreiben:

#parent{ 
    #child { 
    width: 75%; 
    } 

    &.additional_parent_class #child { 
    width: 50%; 
    } 
} 

Während dieser ist in dieser Implementierung nicht notwendigerweise ein "Schmerz im Hintern", es scheint kontraproduktiv, wenn #child eigene Kinder hat, die nun in beiden Regeln dupliziert werden müssen.

Wie auch immer, vielleicht bin ich nur wählerisch, aber es wäre toll, wenn es mehr Möglichkeiten gäbe, die Selektoren zu durchqueren.

Wer weiß etwas, was ich nicht?

Danke!

+0

Dies würde die [Sass Google-Gruppe] eine bessere Frage für sein (https://groups.google.com/forum/?fromgroups#!forum/ sass-lang) – maxbeatty

+1

Mann, ich würde gerne diese Funktion sehen. Ich habe danach gesucht und das ist alles, was ich bisher gefunden habe. – jthomas

+0

1. Wie würde SASS wissen, wo die Klasse zu platzieren ist? Es ist nicht telepathisch. 2. Sie scheinen die Dinge zu kompliziert zu machen. Exzessive Verschachtelung ist bei SASS-Benutzern üblich, und es ist nicht gut. Erwägen Sie die Verwendung eines [SMACSS] (http://smacss.com/) -Ansatzes, der die Verschachtelung der tiefen Verschachtelung auf elegante Weise behebt. –

Antwort

4

Ich stimme zu, es wäre sehr hilfreich. Leider ist das momentan in SASS (oder irgendeinem anderen CSS-Präprozessor, den ich kenne) nicht möglich.

5

Obwohl dies derzeit nicht möglich ist, sind diese und viele ähnliche Verbesserungen der &-Syntax für die Veröffentlichung in Sass 3.3 vorgesehen. Sie können der Diskussion über das Feature in der Sass-Ausgabe here folgen.

0

Dies ist in v3.4 möglicherweise in 3.3 aber nicht sicher. Ich bin jedoch kein Fan der Syntax. & ist viel einfacher. Wünschte, es für einen Alias ​​so etwas wie &^war :)

#parent { 
    #child { 
     width: 75%; 
     @at-root #{selector-replace(&, '#parent', '#parent.additional_parent_class')} { 
      width: 50%; 
     } 
    } 
} 
Verwandte Themen