Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS";及;及;或;_Css_Css Selectors_Conditional Operator - Fatal编程技术网

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]