我的HTML是这样的:

<!DOCTYPE html>
<html lang="en">
<link rel="stylesheet" href="stylesheet.css">
<head>
</head>
<body>
<p>hiya</p>
<h1>this is h1</h1>
<h2>this is h2</h2>
</body>
</html>

我的stylsheet.css是这样的:

:not(p)
{
color:#ff0000;
} 

然而一切都是红色的,包括<p> 我尝试过Firefox 20,Internet Explorer 10和Chrome。 它似乎没有比这更基本,但我无法弄清楚为什么这不起作用(防止<p>变红,即)。 任何有关这方面的帮助将非常感激。

===============>>#1 票数:24 已采纳

:not(p)匹配body

默认color值是inherit

p没有样式集。

因此, pbody继承它的颜色,这是红色的。

解决方案:明确定义你想要变成红色的东西,或者为p明确设置不同的颜色(即不要使用:not ),或者使用:not(body):not(p)

===============>>#2 票数:7

这看起来是因为您没有为p标签定义特定样式。 所以:不(p)甚至适用于身体元素和继承。

===============>>#3 票数:0

您可以为<p>创建单独的ID,但not在css中使用。

HTML

<p class="hiya" id="hiya">hiya</p>
<p class="hi" id="hi">hi</p>
<h1>this is h1</h1>
<h2>this is h2</h2>

CSS

p:not(#hiya) { color:#ff0000; }

这将产生输出红色的<p><p> id为“你好”。

  ask by Vincent Arias translate from so

未解决问题?本站智能推荐: