【发布时间】:2017-01-18 06:33:48
【问题描述】:
我遇到了关于覆盖 css 的问题,我们将不胜感激。
我们有一个元素列表,其中一些“li”具有活动类
<ul class="the_track">
<li class="active">One</li>
<li class="active">Two</li>
<li class="active">Three</li>
<li class="active">Four</li>
<li class="active">Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
</ul>
默认情况下,所有这些都具有“#CCC”的背景。
ul.the_track li{
background:#CCC;
}
所有具有'active'类的li都有'#F00'覆盖'#CCC'的背景
ul.the_track li.active{
background:#F00;
}
现在进入问题区域,根据我的要求,我希望再次覆盖活动类。
ul.the_track li.active:first-child{
/* this is working */
background:#777;
}
但是,
ul.the_track li.active:last-child{
/* this should not work */
background:#CCC;
}
所以,基本上第一个孩子覆盖在没有最后一个孩子的地方工作,因为它不是容器的最后一个孩子,但是如何访问最后一个孩子有没有不涉及 JS 的替代 CSS 解决方案?。
这是上面代码的sn-p
(对于codepen爱好者http://codepen.io/shyamaprasad/pen/WGQjXk):
ul.the_track li{
background:#CCC;
}
ul.the_track li.active{
background:#F00;
}
ul.the_track li.active:first-child{
/* this is working */
background:#777;
}
ul.the_track li.active:last-child{
/* this one should not work */
background:#CCC;
}
<ul class="the_track">
<li class="active">One</li>
<li class="active">Two</li>
<li class="active">Three</li>
<li class="active">Four</li>
<li class="active">Five</li>
<li>Six</li>
<li>Seven</li>
<li>Eight</li>
</ul>
【问题讨论】:
-
它工作正常。最后一个子元素是 8,它不是 .active,因此没有元素匹配选择器。
标签: html css css-selectors