css - :nth-child combined with :not strange behavior

标签 css css-selectors

Hej乡亲们,

我被 CSS 和 :nth-child 和 :not 选择器困住了。

情况:
我有一个搜索字段,结果显示在下面。进入网站时,所有结果均已显示。为了更好地阅读,每个第二个结果行都会获得突出显示颜色 :nth-child(odd)

目标:
当用户在搜索栏中输入值时,我想隐藏(而不是删除!)所有无效行。通过添加 __inivisible 类,它可以很好地工作。它只是将 display 属性设置为 none

问题:
添加类 __invisible 后,:nth-child 选择器将无法按预期工作。我将其与 :not(.__invisible) 选择器结合起来,以排除所有不相关和不可见的结果。因此他仍然数着它们。

可能有点难理解,这里举一个jsfiddle的例子:http://jsfiddle.net/SHGp2/3/

我希望 2 个粉红色的行应该是他必须决定是奇数还是偶数的唯一行,所以一个应该是粉红色的,一个应该是蓝色的。

如果您不明白我在说什么,请禁用 __invisible 类中的注释。您将看到两行粉红色,而不是一粉红色和一蓝色。

也许我的 :nth-child 选择器的功能是错误的,如果是这样,有没有办法让这个东西与纯CSS一起工作?

提前致谢! :)

附注 这个 fiddle 中没有 JS ;)

最佳答案

nth-chlid 计算父级的子级,无论它们是否可见,或者是否应用了任何其他条件。不幸的是,无法执行您在此处尝试的操作,因为即使 nth-of-type 也只能比较标签名称。

最好的选择是在过滤掉行后将其完全删除。我建议克隆该表,然后您可以在需要恢复原始完整表时克隆此"template"。

关于css - :nth-child combined with :not strange behavior,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16841036/

相关文章:

html - 如何在 css 中创建叠加层?

jquery - 如何使 div 可调整大小

html - 嵌套列表 : avoid styling of both lists 上的 CSS

div-group 下的 CSS 分割 div

javascript - 如何使用 jQuery/JavaScript 检测多组单选按钮更改并更改单独的表单输入?

jquery - 给出未设置高度元素的高度

javascript - 是否可以使用 jQuery 选择像滚动条这样的伪元素?

html - 在 CSS 中选择一个类的 child

java - 如何清除文本框中的文字?

html - 让滚动在子元素上而不是在可调整大小的父元素上