2010-05-04 4 views

Antwort

121

Es ist möglich, mit CSS3-Selektoren:

tr:nth-child(even) { 
    background-color: red; 
} 


tr:nth-child(odd) { 
    background-color: white; 
} 

Nach caniuse.com, jeder Browser nun unterstützt.

+24

durch moderne meinen Sie alles, aber IE7 und 8 –

+8

Sie würden wahrscheinlich Umfang es als 'tbody tr wollen: n-te-Kind (auch)', so dass es nur auf die Zeilen in der Tabelle Körper trifft und nicht die ' 'oder' 'die normalerweise unterschiedlich gestylt sind. – craigpatik

0

(In CSS < = 2) Nein. Leider gibt es keine Selektoren (in CSS < = 2), die basierend auf der Position (in Bezug auf die Anzahl innerhalb der Kinder der Eltern) funktionieren, was ich glaube, dass Sie dies nur mit CSS tun müssten.

Hinweis für sich selbst: lesen Sie auf CSS3, bereits!

0

In http://www.w3.org/TR/css3-selectors/#structural-pseudos können Sie Erläuterungen und Beispiele zur Verwendung von n-ter Kind finden:

tr:nth-child(2n+1) /* represents every odd row of an HTML table */ { 
    background-color: green; 
} 
tr:nth-child(odd) /* same */ { 
    background-color: green; 
} 
tr:nth-child(2n+0) /* represents every even row of an HTML table */ { 
    background-color: pink; 
} 
tr:nth-child(even) /* same */ { 
    background-color: pink; 
} 

Viel Glück mit browser compatibility - Sie werden es brauchen.
Es gibt Hacks, damit es im IE funktioniert (mit JS) - ich überlasse das Sichten Ihnen.

+0

Sie brauchen nicht einmal die '+ 0' auf' 2n + 0' – Zac

3

Wenn Sie nur die Hintergrundfarbe ändern, würde das Folgende funktionieren, wobei test.gif ein 40px hohes Bild mit den oberen 20px eine Farbe und die unteren 20 Pixel die andere Farbe ist. Wenn Sie irgendwelche anderen css Eigenschaften ändern müssen, sind Sie ziemlich fest.

table { background: url(test.gif) top; } 
table tr { height: 20px; } 
+7

Das ist ein einzigartig unflexibler Ansatz. –

+0

@Mike Adler - absolut, aber für Browser, die nicht unterstützen: N-Kind, und ohne js/serverseitige Änderungen gibt es nicht viel, was Sie tun können. – ScottE

+1

Clever. Dies wird jedoch die Benutzer verärgern, die größere Textgrößen lesen müssen als in die Zellenhöhe von 20px passen. – Cypher

Verwandte Themen