CSS3奇数甚至只有可见行

vdh*_*ant 5 css css-selectors css3

我试图条纹交替元素的颜色.但我希望行颜色仅交替显示可见行.如果你看看下面这里是我试图让它工作的尝试.

http://jsfiddle.net/kuwFp/3/

<!DOCTYPE html>
<html>
<head>
<style> 
p:not(.hide):nth-child(odd)
{
background:#ff0000;
}
p:not(.hide):nth-child(even)
{
background:#0000ff;
}
.hide { display:none; }
</style>
</head>
<body>

<p>The first paragraph.</p>
<p class="hide">The second paragraph.</p>
<p>The third paragraph.</p> 

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Exp*_*lls 5

你不能用纯CSS做这个,因为:nth-child选择器是根据元素计算的,:not不会过滤DOM中的元素位置.您需要使用JavaScript来实现完全灵活的解决方案.

你仍然可以通过制作元素之后不可思议地做到这一点.hide,:nth-child交替应该是它们的颜色:

.hide + p:nth-child(odd) {
    background: #0000ff;    
}
Run Code Online (Sandbox Code Playgroud)

您可以继续添加类似规则的兄弟姐妹越来越多的组合.hidep,但是这是非常不灵活.