CSS";及;及;或;
我遇到了很大的麻烦,因为我需要对一些输入类型的样式进行诅咒。我有点像:CSS";及;及;或;,css,css-selectors,conditional-operator,Css,Css Selectors,Conditional Operator,我遇到了很大的麻烦,因为我需要对一些输入类型的样式进行诅咒。我有点像: .registration_form_right input:not([type="radio") { //Nah. } 但我也不想设计复选框 我试过: .registration_form_right input:not([type="radio" && type="checkbox"]) .registration_form_right input:not([type="radio" &&am
.registration_form_right input:not([type="radio")
{
//Nah.
}
但我也不想设计复选框
我试过:
.registration_form_right input:not([type="radio" && type="checkbox"])
.registration_form_right input:not([type="radio" && "checkbox"])
.registration_form_right input:not([type="radio") && .registration_form_right input:not(type="checkbox"])
如何使用&&
?我很快就需要使用|
,我想用法也会一样
更新:我仍然不知道如何正确使用
|
和&
。我在W3文档中找不到任何内容。我想你不喜欢写更多的选择器并用逗号分隔它们
.registration_form_right input:not([type="radio"]),
.registration_form_right input:not([type="checkbox"])
{
}
顺便说一句
not([type="radio" && type="checkbox"])
在我看来,更像是“没有这两种类型的输入”:)和(&&
):
或(|
):
IE不支持
:not
伪类。我需要这样的东西:
.registration_form_right input[type="text"],
.registration_form_right input[type="password"],
.registration_form_right input[type="submit"],
.registration_form_right input[type="button"] {
...
}
这里有一些重复,但为获得更高的兼容性而付出的代价很小。
&&
通过将多个选择器串联在一起工作,如下所示:
<div class="class1 class2"></div>
div.class1.class2
{
/* foo */
}
<div class="class1"></div>
<div class="class2"></div>
div.class1,
div.class2
{
/* foo */
}
以防万一有人像我一样陷入困境。 在通过了帖子和一些点击测试之后 这对我有用
input:not([type="checkbox"])input:not([type="radio"])
您可以通过某种方式复制“或”使用&和:不的行为
SomeElement.SomeClass [data-statement="things are getting more complex"] :not(:not(A):not(B)) {
/* things aren't so complex for A or B */
}
要选择
X
元素的属性a
和b
:
X[a][b]
X[a],X[b]
要选择
X
元素的属性a
或b
:
X[a][b]
X[a],X[b]
一句警告的话。将几个
not
选择器串在一起会增加结果选择器的特殊性,这使得重写变得更加困难:您基本上需要找到带有所有not的选择器并将其复制粘贴到新选择器中
一个
非(X或Y)
选择器可以避免夸大特异性,但我想我们必须坚持将相反的组合在一起,就像。那样不起作用,因为第一个选择器会选择所有非无线电
,(但会选择复选框
),第二个选择器会做相反的事情。两者的并集将同时包含复选框
和无线电
。第一个示例不会将它们放在一起&&;它们将为第一个选择器的非无线电输入和非复选框的输入触发,这意味着所有输入:-)您错了。然后,第一个应用于第二个,第二个应用于第一个。不,也失败了。它将应用于1到2和2到1@KennyTM字体看。使用逗号将执行以下操作:。注册表单右键输入:not([type=“radio”])将应用于包括复选框在内的所有内容。注册表单右键输入:not([type=“checkbox”])将应用于包括复选框在内的所有内容radio@Misiur:当然可以。第二个是“OR”(又称“OR”)的情况。更新以澄清。@KennyTM:Misiur想说的是…你的“| |”示例在语法上是正确的,但如果你简化表达式,它就变成了“.registration_form_right input”,因为两个选择器的并集包含所有输入。@geo,@Mis:look,问题是“我需要尽快使用”,这是一种从示例中构造|
的方法。当然,经过简化后,它变成了。注册|表单|右输入
,但本质是你使用,
作为|
。您可以使用input:not([type=“radio”])、input:not([name=“foo”])
作为一个非平凡的示例。你想威胁那些试图用devine报复来设计复选框的人?(你的意思可能是“豁免”或类似的,例如,“我需要从样式规则中豁免某些输入类型。”)嗯,我的语言中找不到短语动词的好翻译;)我想@T.J.克劳德可能理解这一点。但这很有趣……特别是讽刺的是,他拼错了“神圣”=D好的,谢谢你的光。我讨厌样式化表单,但这是我的任务,而站点不是我的。我会将类应用于输入。下面是一个有用的图表,显示了Internet Explorer支持的内容:not
似乎从IE9开始就可以工作(感谢@geofflee提供的图表)。我们真的还关心2018年支持旧版本的IE吗?甚至微软也不同意。这个答案已经发布8年了。我已经删除了关于:not()选择器的过时指导。对不起,:not(:not)不是有效的CSS语法。不过它和jQuery一起工作,对我来说很有效。非常感谢你。这个答案救了我一天:)
X[a],X[b]