如何分层特异性

时间:2009-08-25 01:47:01

标签: jquery css access-specifier

http://www.smashingmagazine.com/2009/08/17/taming-advanced-css-selectors/

的帖子中

在定义“特异性”规则的背景下陈述:

  

例如,如果要更改   所有div的背景颜色   作为博客帖子的元素,   您可以使用属性选择器   针对每个班级的div   属性以“post - ”开头:

div[class*="post"] {
  background-color: #333;
  }
     

这将匹配其class属性在任何位置包含单词“posts”的所有div元素。

...

我的问题是扩展上面的例子:

** ...更改博客上帖子的所有div元素的背景颜色,除非帖子由anon用户看起来像...... **

[whatzitlooklike?]

THX

1 个答案:

答案 0 :(得分:2)

首先,这不是在CSS中选择具有特定类的元素的正确方法。这就是.的用途:

div.post {
  background-color: #333;
}

我只是简单地浏览了一下这篇文章,但我不知道它为什么会推荐其他语法。除了它需要更多的打字之外,它在Internet Explorer 6中不起作用,并且它将完全混淆任何有经验的CSS作者。

至于您的实际问题,匿名用户如何设置帖子样式完全取决于他们如何标记。例如,如果这样的帖子在您的HTML中显示如下:

<div class="post anonymous">...</div>

然后你可以简单地添加另一个样式规则:

div.anonymous {
  background-color: purple;
}

重要的问题是:这些样式规则在样式表中出现的顺序是什么?如果.anonymous出现在最后,那么它将优先应用于任何地方。因此,即使.post.anonymous规则都适用于<div>.anonymous颜色也会优先,因为它会在以后出现。 (当然,如果你把这些规则放在另一个顺序中,反之亦然。)