CSS使用:不是带CLASS的ID

时间:2013-12-02 12:40:06

标签: css css-selectors

有人知道如何将CSS选择器:not()用作#some_id:not(.any_class_name)吗?

代码看起来好像是正确的,但它不起作用。没有not选择器还有另一种方法吗?我在互联网上找不到任何东西。

我正在创建一个包含多个页面的Web应用程序,但是有几个页面具有id=some_id的div。我认为我必须通过添加any_class_name一次使用上面的CSS代码来解决问题来添加特定的CSS,但它不起作用。

3 个答案:

答案 0 :(得分:24)

我相信你正在逆转选择器。您有一些具有相同class的元素,但您希望过滤掉具有特定ID的元素。在那种情况下:

HTML:

<p class="someclass">hello</p> <!-- will be targeted by css below, thus green -->
<p class="someclass" id="some-id">hi</p> <!-- will not be targeted by css below -->

CSS:

.someclass:not(#some-id){ color: green; } 
/* selects all elements with classname 'someclass', 
   but excludes the one that has also has an id of 'some-id' */

正如@secretSquirrel指出的那样,请注意browser compatibility:Internet Explorer 8及更早版本不支持此选择器。

答案 1 :(得分:2)

这将设置除<a></a>之外的所有背景:

:not(a)
{
     background: gray;
}

答案 2 :(得分:1)

我希望这会对你有所帮助。

Demo

另一种方式是: 你可以覆盖css。可能你想要这样的东西。

<div id="demo">
<p class="class">This is a paragraph.</p>
<p>This is another paragraph.</p>
</div>

你的css

#demo
{
color:#0000ff;
}
.class
{
color:#ff0000;
}