我有一个表格显示树形结构(超级和子类别)。当用户点击一个超类别时,子类的显示属性被设置。选择第二个可见表格行
现在我想在每个第二个表格行上添加一个交替的背景色 - 但当然只考虑当前可见的那些。下面是该结构的一个简化的例子:
<table>
<tr data-level="0"><td>Super 1</td></tr>
<tr class="hide" data-level="1"><td>Sub 1</td></tr>
<tr data-level="0"><td>Super 2</td></tr>
<tr class="hide" data-level="1"><td>Sub 2</td></tr>
<tr class="hide" data-level="1"><td>Sub 3</td></tr>
<tr class="hide" data-level="1"><td>Sub 4</td></tr>
</table>
当“超级2”元件上的用户点击,则“隐藏”类是从子元素除去。
我尝试了几种选择,例如:
/* Ugly result (dosn't recognize that elements are hidden) */
tr:nth-child(2n)
{
background-color: grey;
}
/* Doesn't work at all */
tr:visible:nth-child(2n)
{
background-color: grey;
}
/* Not what I inteded to do */
tr:not(.hide):nth-child(2n)
{
background-color: grey;
}
我希望我得到了什么我想做的事情清楚。
这是可能的CSS或我应该写一个JS脚本,重新计算偶数和奇数行,每当有任何改变? 在此先感谢您的任何提示!
这会被问到很多 - 典型的答案是,它不可能用纯CSS(直到CSS4也许),所以同时你需要在JS中完成所有这些。实际上,':visible'选择器实际上是一个非标准的选择器,它出现在jQuery/Sizzle中,也可能是其他一些库。 – BoltClock 2012-03-11 17:02:22
[样式使用n-child保持表格的方面(交替行颜色)更新](http://stackoverflow.com/questions/9216398/style-using-nth-child-to-keep-tables-aspect-交替排列颜色更新) – BoltClock 2012-03-11 17:11:01