css目标子类如果单个

时间:2015-09-23 14:13:44

标签: css css3

我得到了以下标记:

<div>
<p class="active"></p>
<p></p>
<p class="active"></p>
<p></p>
</div>

有一次我得到了这个标记:

<div>
<p></p>
<p></p>
<p class="active"></p>
<p></p>
</div>

现在我想设置活动类的样式,但前提是div中只有一个活动类。如果有多个活动类,则它们应该是不同的样式。类似的东西:

div .active{
color: red;
}

div .active:only-child{
color:green;
}

如果没有js有办法实现这一目标吗?只有CSS?

3 个答案:

答案 0 :(得分:1)

直到nth-match css选择器在主流浏览器中实现(给它几年,哈哈),据我所知,这对纯CSS来说是不可能的。

CSS3 selector :first-of-type with class name?

的类似讨论

抱歉!

答案 1 :(得分:1)

不,你无法在普通的CSS中实现这一点,因为你不能从特定的选择器访问父元素,也不能根据它是否有一个具有特定类名的子元素来设置元素的样式。

您可以将辅助类名添加到父元素。类似于.has-active-items

答案 2 :(得分:0)

你不能但是你可以选择&amp;样式第一个出现“活跃”类:

View demo.

CSS:

reduce