css3 last-child not working as expected
I have match listings dynamically generated. After each member I display a li that displays VS within it. However the very last ul li in the div match shouldnt be visible. Any ideas how I can do that? HTML
<style>
.match {
}
.match ul {
}
.match ul li {
float: left;
margin-right: 50px;
}
.match ul li:last-开发者_JAVA百科child {
display: none;
}
</style>
<div class="content">
<div class="match">
<ul>
<li><a href="/wade-barrett/member">Wade Barrett</a></li>
<li style="">VS</li>
</ul>
<ul>
<li><a href="/shaemus/member">Shaemus</a></li>
<li style="">VS</li>
</ul>
<ul>
<li><a href="/randy-orton/member">Randy Orton</a></li>
<li style="">VS</li>
</ul>
<ul>
<li><a href="/john-cena/member">John Cena</a></li>
<li style="">VS</li>
</ul>
<ul>
<li><a href="/edge/member">Edge</a></li>
<li style="">VS</li>
</ul>
<ul>
<li><a href="/chris-jericho/member">Chris Jericho</a></li>
<li style="">VS</li>
</ul>
<p class="clear"></p>
</div>
</div>
The :last-child
pseudo-class should apply to the ul
, not li
, because you want VS text of the last ul
of the list to be hidden. By applying the pseudo-class to li
, you're applying styles to the last li
of every ul
, which is incorrect.
You should also apply a class
attribute to the li
elements with the VS text so that it's more convenient to match with a class selector.
Change
<li style="">VS</li>
to
<li class="vs">VS</li>
And use this instead of your current :last-child
selector:
.match ul:last-child li.vs {
display: none;
}
What browser are you using, IE does not support it. The latest version of the other browsers do, but I would recommend placing a class on it to make it 100%.
精彩评论