根据使用CSS的元素数量设置元素样式?

根据使用CSS的元素数量设置元素样式?,css,Css,我需要根据包含div中的标签数量设置标签标签样式 示例代码: <div class="wrapper"> <label class="checkout-item-promo" /> </div> <div class="wrapper"> <label class="checkout-item-promo" /> <label class="checkout-item-promo" /> </div>

我需要根据包含div中的标签数量设置标签标签样式

示例代码:

<div class="wrapper">
 <label class="checkout-item-promo" />
</div>

<div class="wrapper">
 <label class="checkout-item-promo" />
 <label class="checkout-item-promo" />
</div>

对于第二个div,我需要使用CSS3的
:before
功能在标签前面添加项目符号,但我只希望在包装器中有多个标签时发生


任何人都有使用CSS实现此功能的提示或技巧吗?

您可以将选择器
:only child
:not
组合使用。据我所知,如果div中有多个标签,您希望将项目符号添加到所有标签中,否则(只有一个标签),不应添加项目符号。因此,您可以尝试以下CSS:

div.wrapper > .checkout-item-promo:not(:only-child):before {
  content:'* ';    
} 

仅使用CSS是不可能的,下面没有父选择器Yeta,我认为这不需要选择父选择器。感谢Zach的回复!这只涉及一个孩子的情况,而不是所有孩子的情况!这对我的实际代码进行了一些调整,效果非常好。我假设这仅限于支持CSS3的浏览器?@Rinato很抱歉,这些选择器是CSS3的一部分,许多其他有用的选择器也是CSS3的一部分,没有它们,我们几乎无法做很多事情(相反,我们必须使用脚本或一些丑陋的解决方法)。。。我认为只有非常旧的版本不支持这些功能。@King不用担心!我只是希望能够告诉我的设计师这将在哪些浏览器中工作。非常感谢你的帮助!另一种方法是,可扩展到n个元素(只需更改(n+2)任意数量),如果您希望它在所有浏览器中都能工作,那么可以使用jQuery(如果您喜欢的话)。jQuery可以识别大多数CSS伪选择器,您可以将CSS类添加到与特定选择匹配的任何内容中。我最近不得不在一个网站上这样做,该网站需要IE中的第n个孩子支持。这样,你的设计师就不必担心浏览器支持了。