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