I want to style the last/second .heading
.
<ul> <li class="heading">Hello world</li> <li>Hello world</li> <li>Hello world</li> <li class="heading">Hello world</li> <li>Hello world</li> </ul>
Neither
ul li.heading:last-child { background: black; }
nor
ul li.heading:nth-child(2) { background: black; }
works for me. Why, and how can I apply styles to that <li>
? It seems pseudo-class selectors doesn't work with class selectors. Which is weird since I could've sworn I'd used it before.
Update: Oops, totally forgot the jsfiddle.
The :last-child selector is a pseudo-class that allows you to target an element that is the last child element within its parent. See also :first-child, :nth-child, :nth-last_child, and :only-child selectors.
Your statement was: "I want to style the last/second .heading."
That would mean that you would have to write your code like this:
<ul> <li class="heading">Hello world</li> <li class="heading">Hello world</li> <li class="heading">Hello world</li> <li class="heading">Hello world</li> <li class="heading">Hello world</li> </ul>
And the CSS:
ul li.heading:last-child { background: black; } ul li.heading:nth-child(2) { background: black; }
Else, with your current html-code, you would write:
ul li.heading:nth-child(4) { background: black; } ul li.heading:nth-child(1) { background: black; }
I understand your thought, but the lis with the class "heading" isn't the second or last child.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With