Heim > Web-Frontend > CSS-Tutorial > Hauptteil

Warum werden meine alternierenden Farben zurückgesetzt, wenn ich :nth-child(even/odd) mit einer Klasse verwende?

Susan Sarandon
Freigeben: 2024-11-08 07:13:02
Original
1037 Leute haben es durchsucht

Why are My Alternating Colors Resetting When Using :nth-child(even/odd) with a Class?

:nth-child(even/odd) Selector with Class Issue

Sie möchten abwechselnde Farben anwenden, um Elemente mit dem „Elternteil“ aufzulisten " Klasse. Beim Zurücksetzen der Farben treten jedoch Probleme auf. Um dieses Problem zu lösen, berücksichtigen Sie Folgendes:

Lösung:

Da CSS-Regeln von oben nach unten angewendet werden, sind die :nth-child(even/odd)-Selektoren überschreibt möglicherweise frühere Farbeinstellungen. Um dieses Problem zu beheben, verwenden Sie den allgemeinen Geschwisterkombinator (~), um die Farben nach nicht „übergeordneten“ Elementen umzuschalten:

.parent:nth-child(odd) {
    background-color: green;
}
.parent:nth-child(even) {
    background-color: red;
}

/* Alternate colors after non-.parent elements */
li:not(.parent) ~ .parent:nth-child(odd) {
    background-color: red;
}
li:not(.parent) ~ .parent:nth-child(even) {
    background-color: green;
}
Nach dem Login kopieren

Erklärung:

  • Die Die ersten beiden Regeln legen die abwechselnden Farben für „übergeordnete“ Elemente fest.
  • Nachfolgende Regeln verwenden den ~-Kombinator, um die Farben nach nicht „übergeordneten“ Elementen umzuschalten.
  • Jeder Regelsatz wechselt die Farben mit erhöhte Spezifität, wodurch das gewünschte Verhalten sichergestellt wird.

Einschränkungen:

Während diese Methode es Ihnen ermöglicht, abwechselnde Farben für eine begrenzte Anzahl von Nicht-"Eltern" zu erreichen Elemente gibt es eine Grenze, wie weit Sie diesen Ansatz erweitern können.

Das obige ist der detaillierte Inhalt vonWarum werden meine alternierenden Farben zurückgesetzt, wenn ich :nth-child(even/odd) mit einer Klasse verwende?. 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