我的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>
变红,即)。对此有任何帮助将非常感激。
答案 0 :(得分:24)
:not(p)
匹配body
。
默认color
值为inherit
。
p
没有设置样式。
p
从body
继承其颜色,该颜色为红色。
解决方案:明确定义您想要变红的内容,或明确为p
设置不同的颜色(即不要使用:not
),或使用:not(body):not(p)
答案 1 :(得分:7)
这看起来是因为您没有为p标签定义特定样式。所以:不是(p)甚至适用于身体元素和继承。
答案 2 :(得分:0)
您可以为<p>
创建单独的ID,然后在css中使用not
。
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为“hiya”。