2016-07-28 29 views
1

Ich versuche, alle div, table, ul, dl usw. Kinder eines Selektors mit LESS zu adressieren.Gibt es eine Möglichkeit, Selektoren zu gruppieren?

Ich würde gerne so etwas schreiben.

.myclass { 
    ... 

    &.otherClass > (div, ul, dl, table) { 
    // define some rules... 
    } 
} 

Ich würde die folgende Ausgabe erwarten.

.myclass.otherClass > div, 
.myclass.otherClass > ul, 
.myclass.otherClass > dl, 
.myclass.otherClass > table { 
    // rules 
} 

Aber die Klammer scheint nicht unterstützt, da es, wie kompiliert, eine ungültige CSS natürlich zur Folge hat.

Gibt es eine Syntax oder eine andere Möglichkeit, eine solche Verknüpfung in Definitionen zu haben?

+0

Sind das alles Kinder oder nur ein paar ausgewählte Tag-Typen? ... oder vielleicht alle außer einem Tag-Typ? – LGSon

+0

Nur diese Tags, die ich in der Post aufgezählt habe. –

+0

gefragt, wie Sie tun könnten '.myclass.otherClass> * {...}' oder vielleicht '.myclass.otherClass>: nicht (li) {...}' was könnte Ihnen kürzere Code – LGSon

Antwort

2

Ihre Lösung:

.myclass { 
    ... 

    &.otherClass { 
    > div, > ul, > dl, > table { 
     // define some rules... 
    } 
    } 
} 

Wie für Ihren Kommentar, die > Wähler nach dem ersten Selektor zu entfernen, wird ein anderes Ergebnis erzeugen:

Dieses Beispiel

div { 
    > span, p, a { 
    border:1px solid #333; 
    } 
} 

kompiliert in

div > span, div p, div a { 
    border: 1px solid #333; 
} 

während dieses Beispiel

div { 
    > span, > p, > a { 
    border:1px solid #333; 
    } 
} 

in kompiliert

div > span, div > p, div > a { 
    border: 1px solid #333; 
} 
+0

Ok, also im Grunde gibt es keine Möglichkeit, Dinge zu gruppieren, wie ich es wollte, und die kürzeste Syntax besteht darin, eine andere Ebene zu verschachteln. Ich akzeptiere deine Antwort, danke. –

1

Eine andere Lösung ähnlich wie Randys Antwort ist eine Variable für .otherClass und >:

@selector: .otherClass >; 

.myclass { 
    display:block; 
    &@{selector} { 
    div, ul, dl, table { 
     color:red 
    } 
    } 
} 
Verwandte Themen