CSS
目前复制它的另一种可靠方法是使用相邻的兄弟选择器:
.parent,
.parent + .parent + .parent,
.parent + .parent + .parent + .parent + .parent /* etc */
{ background-color: green; }
.parent + .parent,
.parent + .parent + .parent + .parent /* etc */
{ background-color: red; }
你有三个选择:
- 使用
not()
选择器。这将使您的突出显示无限期地进行,但它偶尔会翻转它突出显示的顺序。如果您的列表可能包含大量要突出显示的元素,请使用此选项。
- 使用
+
(相邻兄弟)选择器。这个选项不会一直高亮,但它保证订单永远不会被翻转。如果您的列表将包含较小的突出显示元素分组,请使用此选项。
- 使用
~
(任何兄弟)选择器。我不建议这样做,因为列表将无法根据总列表长度而不是总匹配兄弟来正确突出显示。这总是会在其他两个选项之前失败,而且更明显。
在这里小提琴:http: //jsfiddle.net/corymcd/kVcZJ/
随意复制其中的 HTML 并将其粘贴到其他人演示其方法的那些中。
jQuery
如前所述,使用 jQuery 之类的东西可以很容易地让您为元素分配偶数/奇数类或简单地更改内联样式。
// Find all objects to highlight, remove all of the highlighting classes,
// and then re-highlight.
$(".parent").removeClass('odd even').each(function(index) {
var objPrev = $(this).prev('.parent');
if( objPrev.hasClass('odd') ) {
$(this).addClass('even');
} else {
$(this).addClass('odd');
}
});
在这里摆弄:http: //jsfiddle.net/corymcd/kAPvX