Css 如何根据列表项的顺序设置其样式

Css 如何根据列表项的顺序设置其样式,css,css-selectors,Css,Css Selectors,我有一份由列表组成的菜单。根据每个li项目在列表中的位置,每个li项目需要有不同的背景颜色: 第一项为粉红色, 第二个是橙色, 第三个是绿色的, 等等 每个项目都有自己的ID,所以给每个项目提供自己的CSS样式应该没有问题。(例如,第一个项目的ID是menu-item-30,第二个项目的ID是menu-item-57,依此类推,其ID为随机数。) 然而,该站点应该以不同的语言运行,并且在每种语言中,列表项都有不同的ID。(例如,在英文菜单中ID为menu-item-30的项目在法文菜单中ID为

我有一份由列表组成的菜单。根据每个li项目在列表中的位置,每个li项目需要有不同的背景颜色:

第一项为粉红色,
第二个是橙色,
第三个是绿色的,
等等

每个项目都有自己的ID,所以给每个项目提供自己的CSS样式应该没有问题。(例如,第一个项目的ID是menu-item-30,第二个项目的ID是menu-item-57,依此类推,其ID为随机数。)

然而,该站点应该以不同的语言运行,并且在每种语言中,列表项都有不同的ID。(例如,在英文菜单中ID为menu-item-30的项目在法文菜单中ID为menu-item-241。)

我想知道实现这一点的唯一方法是否是将ID添加到CSS规则中,如下所示:

#header #access li.menu-item-30,
#header #access li.menu-item-210, /*spanish*/
#header #access li.menu-item-241 /*french*/{
/*add header prefix to li's only'*/
   background: url('images/headers/navbar.png') 0 -124px repeat-x transparent;
   border-bottom: 3px solid #f26122;
}


或者,如果有一种方法-可以在IE7及以上版本中使用,则可以使用更通用的规则,例如第n个孩子或诸如此类的规则。

有一种方法。您可以为元素添加
rel=“home”
属性,然后使用css您将能够做到这一点:
#header#access li a[rel=“home”]{}


如果您没有访问代码的权限,那么唯一的方法就是为每个元素编写css。

“这在IE7及以上版本中适用”和“第n个孩子”在同一句话中…?@BoltClock我写了“第n个孩子”作为一般规则的示例。这就是为什么我还要加上“如”。但是,如果这只会引起混乱,那么我将消除它,而不是混乱,只是同情和怜悯。谢谢。这可能会对
有所帮助,但是如何设计
li
的样式呢?然后您将li rel数据附加到a而不是如下所示:
#header#access li[rel=“home”]{}header#access li[rel=“home”]a{}
您的回答给了我一个更简单的ides-我只是根据列表中的位置/顺序为每个li添加了一个类:menu-item-1,菜单项2。等等,非常感谢!