Ich habe vier Farben und möchte sie auf die verschachtelten Divs anwenden, damit jedes nächste Kind eine andere Farbe hat. Wenn es eine fünfte Verschachtelungsebene gibt, möchte ich bei der ersten Farbe von vorne beginnen und diese auch dann fortsetzen, wenn ich unendlich tiefe Verschachtelungsebenen habe . Ist dies nur mit CSS-Selektoren möglich und vermeide JavaScript ?
Ich bin derzeit beim folgenden Code festgefahren - wie Sie sehen können, wird Pink nach dem 4. immer wieder auf alle verschachtelten Divs angewendet.
div {
border: 1px solid black;
font-weight: bold;
padding: 30px;
}
div {
color: red;
}
div>div {
color: blue;
}
div>div>div {
color: green;
}
div>div>div>div {
color: pink;
}
<div>
1
<div>
2
<div>
3
<div>
4
<div>
1
<div>
2
<div>
3
<div>
4
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
html
css
css-selectors
easwee
quelle
quelle
section
oder Klassennamen für die Top-Namen, dann sollten Ihre Selektoren enthalten seinsection > div
Antworten:
Wir können benutzen
hue-rotate
, um den gewünschten Effekt zu erzielen. Wenn Sie den Filter auf90deg
einstellen, werden alle 4 Kinder wiederholt. Wenn Sie die Ausgangsfarbe als Blau angeben und den Farbton um 90 Grad drehen, erhalten Sie Rot.Ich denke nicht, dass es möglich ist, vier verschiedene Farben in der Art und Weise anzugeben, wie Sie mit reinem CSS fragen, es sei denn, Sie sind bereit,
div > div > ...
für ein theoretisches maximales Nest zu wiederholen ?Beispiel mit Lorem Ipsum Text:
Code-Snippet anzeigen
quelle
saturate
. Durch Erhöhen der Sättigung erhaltensaturate(3)
wir in jeder Schleife genau die gleichen Farben, aber ich habe eine Art Schatten oder Blutung bemerkt, wenn ich die Sättigung so hoch drücke, dass es SEHR schwierig ist, die Zeichen zu lesen. Ich habe die Sättigung in meinen Codebeispielen auf 2,5 erhöht, um den Unterschied zwischen den Farben pro Schleife zu verringern.Hier ist eine Lösungsidee, die auf einem Hintergrundtrick basiert. Es ist eher eine Annäherung als eine robuste Lösung, da ich die Tatsache berücksichtigen werde, dass Sie auf jeder Ebene nur eine Textzeile haben.
quelle