gpt4 book ai didi

CSS :not selector without combining

转载 作者:行者123 更新时间:2023-12-04 18:46:49 29 4
gpt4 key购买 nike

我想弄清楚 :not 选择器是如何工作的。首先我尝试这段代码

<!DOCTYPE html>
<html>
<head>
<style>

p {
color: #000000;
}

:not(p) {
color: #ff0000;
}
</style>
</head>
<body>

<h1>This is a heading</h1>

<p class="example">This is a paragraph.</p>
<p>This is another paragraph.</p>

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

</body>
</html>

它的工作原理与我期望的段落没有样式并且 div 和标题中的文本是红色的一样。之后我将样式标签中的部分更改为:

<style>
:not(p) {
color: #ff0000;
}
</style>

这次它没有像我预期的那样工作。虽然我希望所有不是段落的元素都是红色的,但它们都显示为红色。

此外,我正在将样式标签之间的代码更改为:

<style>
:not(p.example) {
color: #ff0000;
}
</style>

这次我希望元素不适合“p.example”(h1、div 和第二段)为红色,但没有任何元素受到影响。

我错过了什么?上面显示的示例不应该选择所有不适合参数选择器的元素吗?是否有关于不单独使用 :not 选择器的规则(例如不是 p:not 或 h1:not)?

最佳答案

前面的答案都不完全正确。

在你的第二种情况下,仅仅指定

:not(p)

把所有东西都染成红色,因为它给 body 着色,而且颜色是遗传的

不必必须指定,正如一个答案所声称的那样,

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

这几乎完全等同于 :not(p)(意思是 *:not(p))。您也不必指定任何其他父级,例如 .main 作为另一个答案声明。

第三个例子失败了,因为 :not 的参数不是一个简单的选择器。您给出的语法似乎是在尝试使用 example 类选择所有不是 p 的内容。正如另一位受访者所指出的,您的意思可能是一个p但没有example类的所有内容,对于p: not(.example) 是正确的。

要选择不是 A 也不是 B 的元素(换句话说,不是(A 或 B),只需执行

:not(A):not(B)

例如,

:not(h1):not(p)

在这个例子中,它将应用于 bodydiv。一个更现实的例子是选择 p 而不是那些具有两个类之一的 p:

p:not(.class1):not(.class2)

关于CSS :not selector without combining,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27188313/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com