Auswählen von Elementen, die sich nicht in bestimmten Elementen befinden

9

Gibt es mit CSS3 eine Möglichkeit, Elemente auszuwählen, die sich nicht innerhalb von Elementen mit einer bestimmten Klasse befinden? Im Beispiel unten wählen Sie beispielsweise class="bar" -Elemente aus, die nicht innerhalb von Elementen von class="foo" liegen (d. H.% Co_de%, aber nicht id="2" )?

%Vor%     
sawa 12.04.2013, 14:57
quelle

4 Antworten

3

Laut MDN entspricht :not() einem Element gemäß einigen Bedingungen. es wird kein "Nicht-Element" zurückgegeben.

Ich kenne keine Pseudoselektoren, um alle Eltern für eine bestimmte Bedingung zu testen, also würde ich persönlich einen Workaround wie diesen verwenden:

%Vor%     
Aprillion 12.04.2013 15:19
quelle
1

Wenn .foo selbst nicht beliebig tief ist

Angenommen, .foo ist eine bekannte Tiefe vom body -Tag (Ihre Frage zeigt nur innerhalb von .foo eine beliebige Tiefe an, oder unabhängig von .bar in oder aus .foo ), dann funktioniert so etwas wie der folgende Code, um .bar für jede beliebige Tiefe innerhalb oder außerhalb von .foo auszuwählen. Für dieses erste Beispiel gehe ich davon aus, dass .foo ein direktes Kind von body ist, aber wenn dies nicht der Fall wäre, müsste der Code leicht modifiziert werden, um die passende Tiefe von .foo zu erhalten (siehe zweites Beispiel). :

%Vor%

Sehen Sie eine Geige für den obigen Code.

Dies ist nur praktisch, wenn .foo nicht zu tief verschachtelt ist, da .bar positioning sowohl auf der gleichen Ebene wie .foo als auch auf allen vorherigen höheren Ebenen berücksichtigt werden muss. Wenn also zum Beispiel .foo ein Enkelkind von body wäre, wäre Folgendes nötig:

%Vor%

Sehen Sie eine Geige für den obigen Code.

    
ScottS 19.04.2013 22:33
quelle
0

Leider nicht, die einzige Möglichkeit, dies zum Laufen zu bringen, wäre die Verwendung der: not-Syntax und die Angabe von 1 Tiefenschicht nach Element- oder Klassennamen

Hier ist die Geige: Ссылка

html

%Vor%

css:

%Vor%     
Dylan Hayes 12.04.2013 15:08
quelle
0

Ich würde Folgendes verwenden:

%Vor%

Siehe diese Demo: Ссылка

    
otinanai 12.04.2013 15:26
quelle

Tags und Links