426 Stimmen

Wie kann ich gerade und ungerade Elemente gestalten?

Ist es möglich, CSS-Pseudoklassen zu verwenden, um gerade und ungerade Instanzen von Listenelementen auszuwählen?

Ich würde erwarten, dass das folgende eine Liste mit wechselnden Farben ergibt, aber stattdessen erhalte ich eine Liste mit blauen Elementen:

<html>
    <head>
        <style>
            li { color: blue }
            li:odd { color:green }
            li:even { color:red }
        </style>
    </head>
    <body>
        <ul>
            <li>ho</li>
            <li>ho</li>
            <li>ho</li>
            <li>ho</li>
            <li>ho</li>
        </ul>
    </body>
</html>

846voto

thirtydot Punkte 218830

Demo: http://jsfiddle.net/thirtydot/K3TuN/1323/

li {
    color: black;
}
li:nth-child(odd) {
    color: #777;
}
li:nth-child(even) {
    color: blue;
}

<ul>
    <li>ho</li>
    <li>ho</li>
    <li>ho</li>
    <li>ho</li>
    <li>ho</li>
</ul>

Dokumentation:

68voto

Kevin Gurney Punkte 1291

Das Problem mit Ihrem CSS liegt in der Syntax Ihrer Pseudoklassen.

Die geraden und ungeraden Pseudo-Klassen sollten sein:

li:nth-child(even) {
    color:green;
}

und

li:nth-child(odd) {
    color:red;
}

Demo: http://jsfiddle.net/q76qS/5/

28voto

Dan S Punkte 775

Verwenden Sie dies:

li { color:blue; }
li:nth-child(odd) { color:green; }
li:nth-child(even) { color:red; }

Informationen zur Browserunterstützung finden Sie hier: http://kimblim.dk/css-tests/selectors/

14voto

Minh_Bu Punkte 105

Aber im IE funktioniert es nicht.

Empfehlen Sie die Verwendung von :nth-child(2n+1) :nth-child(2n+2)

li {
    color: black;
}
li:nth-child(odd) {
    color: #777;
}
li:nth-child(even) {
    color: blue;
}

<ul>
    <li>ho</li>
    <li>ho</li>
    <li>ho</li>
    <li>ho</li>
    <li>ho</li>
</ul>

7voto

Minh_Bu Punkte 105

Die css ungerade und gerade ist keine Unterstützung für IE. empfehlen Sie mit Lösung unten.

Beste Lösung:

li:nth-child(2n+1) { color:green; } // for odd
li:nth-child(2n+2) { color:red; } // for even

li:nth-child(1n) { color:green; }
li:nth-child(2n) { color:red; }

<ul>
  <li>list element 1</li>
  <li>list element 2</li>
  <li>list element 3</li>
  <li>list element 4</li>
</ul>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X