这个Stack Overflow改进是否有更简洁的CSS选择器表达式?

时间:2009-12-09 16:59:49

标签: css css-selectors

我创建了this user style以使我的Stack Overflow使用更加愉快。如屏幕截图所示,我的侧边栏仅包含“忽略的标签”标题和输入框。我不关心所有未答复的标签,也不关心我已经忽略的所有标签。这是CSS:

#sidebar > * { display: none }
#sidebar > :nth-child(5) { display: inherit }
#sidebar > :nth-child(5) > * { display: none }
#sidebar > :nth-child(5) > :nth-child(4) { display: inherit }
#sidebar > :nth-child(5) > :nth-child(6) { display: inherit }

这最终意味着“隐藏侧边栏5的孩子4和6之外的所有东西。”它工作得很漂亮,但看起来很荒谬。你是否关心高尔夫,并改善我的选择器?

1 个答案:

答案 0 :(得分:0)

我不知道你是否认为这不那么荒谬,但这就是我用两条规则做到的方式:

#sidebar > :not(:nth-child(5)) { display: none }
#sidebar ul > :not(:nth-child(4)):not(:nth-child(6)) { display: none }
  1. 隐藏除第5个人以外的所有侧边栏儿童。
  2. 在所有侧边栏列表中,隐藏除第4和第6个以外的所有孩子。
  3. 根据边栏的实际标记,您可能必须将规则2中的ul替换为其他内容。