Alternovanie prvkov CSS pomocou nth-child inak ako len párne a nepárne

Chcete mať tabuľku s každým druhým riadkom inej farby. Databázový programátor použije pole v tabuľke a v kóde farbu premiestňuje z databázy. Pokročilejší CSS kodér už vie, že existuje nth-child a v zátvorkách použije odd alebo even.

Lenže tabuľky nemusia byť len puristicky jednoriadkové, môžete mať nápad, že jeden logický záznam bude tvorený viacerými riadkami tabuľky.

<table>
<tr><td rowspan="2">A</td><td>1</td><td>2</td></tr>
<tr> <td>1</td><td>2</td></tr>
<tr><td rowspan="2">B</td><td>1</td><td>2</td></tr>
<tr> <td>1</td><td>2</td></tr>
<tr><td rowspan="2">C</td><td>1</td><td>2</td></tr>
<tr> <td>1</td><td>2</td></tr>
<tr><td rowspan="2">D</td><td>1</td><td>2</td></tr>
<tr> <td>1</td><td>2</td></tr>
</table>

Časť A je prvá logická čast a časť B je druhá. Ačko chceme červené.

Normálne by sme spravili v CSS

tr:nth-child(odd| { background:red }

Našťastie nth-child nie je také hlúpe a umožňuje použiť aj výrazy.

Chceme teda bloky B, D atď vyfarbiť? Použime tento zápis


tr:nth-child(4n-1) {background:yellow; }
tr:nth-child(4n) {background:red; }

Pre ilustráciu ako to funguje som dal rôzne farby.

Výraz 4n znamená každý štvrtý prvok. 4m-1 znamená prvok pred každým štvrtým.

Tým zabezpečím, že sa mi na striedačku vyfarbujú dvojice riadkov.

Môže sa Vám ešte páčiť...