CSS-Selektor, um das tiefste Element einer bestimmten Klasse im HTML-Baum zu erhalten

8

Ich habe eine Menge DIV-Elemente in meinem HTML, von denen einige ihr Klassenattribut auf "rowsLayout" gesetzt haben. Einige dieser rowsLayout DIVs können ineinander verschachtelt sein. Ich möchte einen CSS-Selektor definieren, der nur auf die tiefsten DIVs in diesen Verschachtelungen abzielt. Das heißt, ich möchte keine der rowsLayout DIVs, die andere rowLayout DIVs enthalten.

%Vor%

Mit dieser Struktur möchte ich einen Selektor, der auf b, d und e zielt.

Kann das gemacht werden?

    
Matt Thalman 09.03.2011, 15:19
quelle

8 Antworten

10

Sie können den jQuery-Selektor .rowsLayout:not(:has(.rowsLayout)) verwenden.

Aus Performancegründen ist dies in CSS nicht möglich .

Ihre Auswahl hängt von den Kindern (oder deren Fehlen) der Elemente ab, auf die Sie zielen.
CSS ist so konzipiert, dass die Selektoren eines Elements immer aufgelöst werden können, bevor die Child-Elemente des Elements existieren. Dadurch kann CSS als Dokument geladen werden.

    
SLaks 09.03.2011 15:24
quelle
1

Nein.

Ihre Optionen sind: Wählen Sie sie nach ID; fügen Sie eine zweite Klasse für diese Blätter hinzu und wählen Sie nach dieser Klasse aus; Verwenden Sie eine Javascript-basierte Lösung, um das entsprechende Styling (möglicherweise unter Verwendung der zweiten Klasse) festzulegen.

    
Marcin 09.03.2011 15:23
quelle
0

können Sie eine Option zum Hinzufügen einer zusätzlichen Klasse wie "Eltern" zu den übergeordneten Elementen in Betracht ziehen? es wäre einfacher und ist der "standard"

    
jackJoe 09.03.2011 15:23
quelle
0

Abhängig von der Anzahl der Divs, die du hast, kannst du etwas wie:

tun %Vor%

Vielleicht gibt es einen besseren Weg, Ihr Problem zu lösen, was versuchen Sie auf all diese divs anzuwenden?

    
Collin White 09.03.2011 15:24
quelle
-1

wähle sie nach ID

aus %Vor%

irgendeinen Grund für alle Wiederholungsklassennamen btw? Du könntest das Ganze in div von #layout oder sowas einpacken ...

%Vor%

anstatt diesen Klassennamen zu div hinzuzufügen.

    
Matt Lambert 25.03.2013 06:50
quelle
-2

Sieh dir das an:

%Vor%     
yassin laclass 07.09.2016 13:26
quelle
-3

Warum nicht verwenden: leer?

JQuery Empty

EDIT: Es funktioniert auch als CSS Selector:

%Vor%

MEHR EDITS:

:last-of-type funktioniert fast, aber aus irgendeinem Grund bekommt es "a". Sieh meine Geige.

Ссылка

    
josh.trow 09.03.2011 15:27
quelle
-3

Es scheint, dass dies möglich ist, indem Sie das Attribut: dir oder: lang verwenden.

Die Verwendung der: lang ist 2015 vorzuziehen, da sie von den meisten Browsern unterstützt wird.

Beispiel:

%Vor% %Vor%

Obwohl das Beispiel dies mit ltr und rtl demonstriert, könnte the: lang theoretisch dazu gebracht werden, sich als tiefste Übereinstimmung zu verhalten, indem zB: lang (tiefste-overrides-all) verwendet wird, obwohl das wahrscheinlich nicht lang = tiefste- overrides-all sollte für ein Element definiert werden.

    
momomo 10.05.2015 12:13
quelle

Tags und Links