使css nth-child()仅影响可见

And*_*eas 39 css jquery css-selectors

有没有办法只用这个CSS影响可见元素?

table.grid tr.alt:nth-child(odd)
{
    background:#ebeff4;
}

table.grid tr.alt:nth-child(even)
{
    background:#ffffff;
}
Run Code Online (Sandbox Code Playgroud)

如果我使用$('select some tr:s').hide()隐藏了一些行,我会得到奇怪和均匀样式的混合,但所有这些都在混合中.

And*_*eas 18

我最终使用了Rodaine在评论中提出的解决方案,在show/hide之后我这样做:

$('.alt:visible:odd').css('background', '#EBEFF4');
$('.alt:visible:even').css('background', '#FFFFFF'); 
Run Code Online (Sandbox Code Playgroud)

在我的情况下,背景的设置打破了我的悬停,这解决了!important使悬停背景棒.

table.grid tr.hover:hover
{
    cursor:pointer;
    background:#D2E0E9 !important;    
}
Run Code Online (Sandbox Code Playgroud)

  • 在生产环境中使用!important不是一个好习惯.如果你最终使用!important,这意味着解决方案可能会有点复杂,但它存在.在这种情况下,你想用jquery应用类仍然可以不用悬停!重要:http://codepen.io/gfra/pen/nFrEc (3认同)