Optionaler untergeordneter Selektor, mit CSS / Stylus / LESS: .aa .bb? .cc

9

Betrachten Sie diesen HTML-Code mit den CSS-Klassen aa , bb und cc :

%Vor%

Ich kann das class=cc -Tag wie folgt auswählen: .aa > .bb > .cc . In meinem Fall ist das .bb -Tag jedoch manchmal nicht vorhanden, dh der HTML-Code sieht so aus:

%Vor%

Um alle .cc in der Nähe von .aa auszuwählen, müssen zwei CSS-Pfade angegeben werden:

%Vor%

Das funktioniert, aber gibt es keinen kürzeren Weg? Etwas Ähnliches:

%Vor%

mit CSS oder etwas wie Stylus oder weniger?

Motivation: In der realen Welt sind "aa" und "bb" und "cc" etwas längere Namen, und es gibt mehr Sachen vor und nach den "aa" und "cc", und es wäre nett, das nicht zu tun müssen das Zeug duplizieren.

Bitte beachten Sie: In meinem Fall wird das nicht funktionieren: .aa .cc , weil sonst zu viele .cc s an anderen Stellen auf der Seite gefunden würden. Der .cc s muss entweder unmittelbar unter dem .aa oder unter .aa > .bb liegen.

    
KajMagnus 23.11.2012, 06:02
quelle

3 Antworten

10

Für Stylus und Sass könntest du das tun ( Live-Beispiel für Sass ):

%Vor%

Ich konnte keinen Weg finden, dies in einem One-Liner für Sass zu tun, aber für Less / Stylus / Scss könnte man das auch tun (Live-Beispiele für Scss , für weniger ):

%Vor%

Das ist auch nicht so schön, aber immer noch besser als nichts:)

    
kizu 27.11.2012, 15:03
quelle
1

Wenn Sie Ihre Option verwenden möchten, die übrigens sehr interessant ist, können Sie ein korrektes Formular verwenden:

%Vor%

aber die richtige Form würde:

%Vor%

in den Stift:

%Vor%

das ist alles.

    
Jorge Rojas 27.06.2013 15:55
quelle
0

Würde nicht .aa > .cc, .aa > .bb > .cc {} funktionieren? Oder habe ich deine Frage falsch verstanden? Dies selektiert nur die .cc , die direkt .aa Kinder sind und die .cc , die .bb Kinder (Kinder von .aa ) sind.

    
Nit 23.11.2012 06:11
quelle

Tags und Links