:not(选择器)没有正常工作

时间:2016-09-26 15:37:08

标签: html css css3 css-selectors pseudo-class

为什么下面的代码不起作用?它应该隐藏所有不是p的元素,但display属性不能正常工作。



p {
  color: #000000;
}
 :not(p) {
  display: none;
  color: #ff0000;
}

 <h1>This is a heading</h1>

<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

<div>This is some text in a div element.</div>

<a href="http://www.w3schools.com" target="_blank">Link to W3Schools!</a>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

根据您的示例和您的请求

  

它应该隐藏所有不是p

的元素

您必须使用body :not(p) - ,这意味着您正在使用*中的not() body *:not(p) - 所以声明它将样式应用于除body

之外的p的所有子项

body *:not(p) {
  display: none;
  color: #f00;
}
p {
  color: #000;
}
<h1>This is a heading</h1>

<p>This is a paragraph.</p>
<p>This is another paragraph.</p>

<div>This is some text in a div element.</div>

<a href="http://www.w3schools.com" target="_blank">Link to W3Schools!</a>

答案 1 :(得分:0)

div *:not(p) em {…}

  

这将选择元素(不是p元素)和div元素中的所有em元素。所以 ... 是匹配,但是

...

不是。

可能你应该包括该部门。 My reference