I have the following markup:
- one
- two
&
You can't do that with CSS selectors alone. :nth-child()
and sibling combinators are limited to children/siblings sharing the same parent only, as implied by their names, and CSS selectors cannot account for such variations in parent-child structure, nor is there anything like an :nth-grandchild()
selector (even :nth-match() from Selectors 4 limits itself to elements sharing the same parent only).
Of course with something like jQuery it becomes trivial: $('.foo li:eq(0), .foo li:eq(2)')
Otherwise you'll have to mark the first and third li
elements explicitly using classes or IDs, and then select them.
You could use the even and odd selectors.
li:nth-child(odd) {
color: red;
}
li:nth-child(even) {
color: white;
}