当前位置:嗨网首页>书籍在线阅读

05-分组选择器

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

17.4 分组选择器

尽管CSS2语法可以适应大多数的情况,但它其中的一个缺点可能是在样式表中会出现许多重复,特别是对于较大或者更为复杂的网页而言。例如,一个页面有三个不同类型的列表元素——有序的(ol)、无序的(ul)和新的HTML5 menu元素——每个元素都完全有可能在其中还有嵌套的列表。此外,还有一种更复杂的情况,就是那些列表可能会位于不同的容器元素中,其中有一些是你要选择的,有一些又是你不想要的。之后,如果我们要用CSS2选择那些嵌套列表项的话,就必须使用像下面这样的语句:

780.png 我认为这还是一个相当保守的例子。我见过(也用过)许多比这更复杂的代码。为了帮助减少这种重复,Firefox最近实现了一个新的选择器,称为分组选择器(Grouping Selector),其作用就是收集重复的模式。这是它的语法:

781.png selectors值是一个用逗号隔开的简单选择器列表——即,不能是连结符或者伪元素——只要符合任何选择条件就会被应用。也许我可以先展示如何把它应用到本节的第一个例子上,从而能够更好地解释清楚:

782.png 这里,你可以看到我使用:-moz-any()提供了一组可选择的元素。大致来说,我的意思是“选择所有列表项,它是一个无序列表的子元素,这个无序列表可以是任何元素中一个子元素”。此处虽然只是节省了几个字符,但是却避免了大量的重复(重复4条选择器规则中结尾处的ul li)。

分组选择器现在还只是一个提案,在特异性方面也仍然存在未解决的问题。因此,分组选择器还没有被建议放入任何CSS模块,但你应该能够在Firefox 4中对它进行试验。