html - CSS Pseudo Class Selection not working -
i have following html structure:
<ol> <li><a id="a" href="#">not this</a></li> <li><a id="b" href="#">not this</a></li> <li><a id="c" href="#">this one</a></li> <li class="active"><span>not this</span></li> </ol>
i want select #c via css. have tried:
ol > li:not(.active):last-child > { border: 1px solid green; }
as understand li:not(.active) selects li elements 1 class .active.
on selection use :last-child last of these li elements. wont work. what's wrong? possible i'm trying achieve?
thank :)
ps: list length dynamic , the elements not have id used css selection (i used in example clarify element want select) ;)
the pseudo code wrote works! there's no last-child
of <li>
no active
class. code fails time! check 1 in which, last <li>
doesn't have active
.
or need use last-of-type
. check fiddle:
ol > li:not(.active):last-child > { border: 1px solid green; } ol > li:not(.active):last-of-type > { border: 1px solid green; }
<ol> <li><a id="a" href="#">not this</a></li> <li><a id="b" href="#">not this</a></li> <li><a id="c" href="#">this one</a></li> <li class="active"><span>not this</span></li> </ol> <ol> <li><a id="a" href="#">not this</a></li> <li><a id="b" href="#">not this</a></li> <li class="active"><span>not this</span></li> <li><a id="c" href="#">this one</a></li> </ol>
one thing note is, last-of-type
doesn't consider :not()
. check css: how .class:last-of-type [classes, not elements!]! might need use javascript or jquery this.
partial solution
if know not this
occurs in last, can use nth-last-child(2)
:
ol > li:not(.active):nth-last-child(2) > { border: 1px solid green; }
<ol> <li><a id="a" href="#">not this</a></li> <li><a id="b" href="#">not this</a></li> <li><a id="c" href="#">this one</a></li> <li class="active"><span>not this</span></li> </ol>
Comments
Post a Comment