Heim > Web-Frontend > CSS-Tutorial > Zielt CSS :not() selektiv auf entfernte Nachkommenelemente ab?

Zielt CSS :not() selektiv auf entfernte Nachkommenelemente ab?

Linda Hamilton
Freigeben: 2024-12-06 18:58:16
Original
294 Leute haben es durchsucht

Does CSS :not() Selectively Target Distant Descendant Elements?

Kann der CSS :not()-Selektor auf entfernte Nachkommen abzielen?

Die CSS3 :not()-Pseudoklasse ist zum Ausschließen von Elementen gedacht die einem angegebenen Selektor entsprechen. Die Unterstützung für die Ausrichtung auf entfernte Nachkommen ist begrenzt.

Implementierung und Unterstützung

Der :not()-Selektor ist in modernen Browsern teilweise implementiert, unterstützt aber die Ausrichtung auf entfernte Nachkommen ist begrenzt. Es arbeitet hauptsächlich mit direkten untergeordneten Elementen eines Elements.

Verhalten mit entfernten Nachkommen

In Ihrem Beispiel hat der Selektor :not(p) keinen Einfluss auf , auch wenn es ein Nachkomme des

ist. Dies liegt daran, dass :not() nur den unmittelbar untergeordneten Selektor negiert. Das
Das Element entspricht den :not(p)-Kriterien und seine Farbe ist auf Rot gesetzt. Anschließend wird das

Das Element erbt diese Farbe von seinem übergeordneten

.

Erwartetes Verhalten vs. tatsächliches Verhalten

Sie haben erwartet, dass das

Das Element bleibt vom :not()-Selektor unberührt, hat jedoch die Farbänderung geerbt. Dies ist nicht das beabsichtigte Verhalten, um entfernte Nachkommen anzusprechen.

Lösung

Um nur

Elemente innerhalb eines

sollten Sie einen direkteren Selektor verwenden:

div p {
    color: black;
}
Nach dem Login kopieren

Verbesserungen in CSS-Selektoren Level 4

CSS-Selektoren Level 4 schlägt eine Erweiterung vor: not(), um komplexe Selektoren mit Kombinatoren zu akzeptieren. Dies würde es Ihnen ermöglichen, entferntere Nachkommen flexibler anzusprechen. Nach der Implementierung könnten Sie Selektoren schreiben wie:

p:not(div p) {
    color: red;
}
Nach dem Login kopieren

Dieser Selektor zielt auf alle

Elemente, die keine direkten Nachkommen eines

sind.

Das obige ist der detaillierte Inhalt vonZielt CSS :not() selektiv auf entfernte Nachkommenelemente ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage