webForumDet fria alternativet

varannan tabellrad har en egen färg - går det?

HTML & CSS

7 svar · 469 visningar · startad av haider

Medlem sedan jan. 2003956 inlägg
Frågan#1

hur gör man, så att varannan tabellrad får en viss färg/class?

tack i förhand

Medlem sedan jan. 20016 874 inlägg
#2

css:

.a {background-color:#008280;}
.b {background-color:#00ff80;}

html:

<tr class="a"><td></td></tr>
<tr class="b"><td></td></tr>
Medlem sedan jan. 2000978 inlägg
#3

Om du menar en automatisk metod så är det på väg i CSS 3: http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#structural-pseudos

Men tills dess funkar nog JavaScript bäst:
http://www.alistapart.com/articles/zebratables/

Medlem sedan mars 2003132 inlägg
#4

Om det sker på automatisk väg borde man väl kunna göra det med en loop. Udda och jämna tal som ger antingen en eller en annan färg. Borde väl vara lättare att göra detta med css och en loop än med javascriot när sidan genereras automatiskt?

Medlem sedan dec. 20042 245 inlägg
#5

Vilket som är lättast går förstås att diskutera, men det är möjligt att slänga ut klassnamnen dynamiskt med ett serverskript likaväl som med klientskript.

En annan möjlighet är att använda "sibling selector" med CSS (tills :nth-child() har bättre stöd i webbläsare):

tr, tr+tr+tr, tr+tr+tr+tr+tr, ... { background:white; color:black; }
tr+tr, tr+tr+tr+tr, tr+tr+tr+tr+tr+tr, ... { background:yellow; color:black; }
Medlem sedan aug. 20051 448 inlägg
Medlem sedan aug. 20039 340 inlägg
#7

zcorpan skrev:

Vilket som är lättast går förstås att diskutera, men det är möjligt att slänga ut klassnamnen dynamiskt med ett serverskript likaväl som med klientskript.

En annan möjlighet är att använda "sibling selector" med CSS (tills :nth-child() har bättre stöd i webbläsare):

tr, tr+tr+tr, tr+tr+tr+tr+tr, ... { background:white; color:black; }
tr+tr, tr+tr+tr+tr, tr+tr+tr+tr+tr+tr, ... { background:yellow; color:black; }

Jag vet inte om det bara är jag, men det känns som den koden skulle kunna göra vilken som helst webbläsare instabil uppemot 1000 nivåer.

Medlem sedan dec. 20042 245 inlägg
#8

nitro2k01 skrev:

Jag vet inte om det bara är jag, men det känns som den koden skulle kunna göra vilken som helst webbläsare instabil uppemot 1000 nivåer.

Tja, om man tänkt ha 1000 rader i sina tabeller så blir ju selektorerna ganska stora, och det blir ganska mycket att matcha. I Firefox tar det bara lite tid, men sen funkar det bra. Opera däremot verkar inte gilla det och applicerar inte rätt stilregler för alla rader. Safari har jag inte testat än.

Testsida (1.5 MB).

260 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
116 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)