CSS“和”and“或”
我遇到了很大的麻烦,因为我需要从一些inputtypes的样式中进行parsing。 我有这样的东西:
.registration_form_right input:not([type="radio") { //Nah. }
但是我不想勾选checkbox。
我试过了:
.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文档中找不到任何内容。
&&
通过串联多个select器来工作,例如:
<div class="class1 class2"></div> div.class1.class2 { /* foo */ }
另一个例子:
<input type="radio" class="class1" /> input[type="radio"].class1 { /* foo */ }
“||” 通过用逗号分隔多个select器来工作,如下所示:
<div class="class1"></div> <div class="class2"></div> div.class1, div.class2 { /* foo */ }
作为一个便笺,我会build议不要使用“不”select器,因为它不受Internet Explorer支持。 根据一项调查,60%的人使用某个版本的Internet Explorer,所以你的网站不适合很多人。
AND( &&
):
.registration_form_right input:not([type="radio"]):not([type="checkbox"])
OR( ||
):
.registration_form_right input:not([type="radio"]), .registration_form_right input:not([type="checkbox"])
selectX
元素a
AND AND b
属性:
X[a][b]
要selectX
元素的a
或b
属性:
X[a],X[b]
:not
伪类不被IE支持。 我得到了这样的东西,而不是:
.registration_form_right input[type="text"], .registration_form_right input[type="password"], .registration_form_right input[type="submit"], .registration_form_right input[type="button"] { ... }
那里有一些重复,但是为了提高兼容性而付出的代价是很小的。
我想你讨厌编写更多的select器并用逗号分隔它们?
.registration_form_right input:not([type="radio"]), .registration_form_right input:not([type="checkbox"]) { }
和顺便说一句
not([type="radio" && type="checkbox"])
在我看来更像是“没有这两种types的input”:)
以防万一像我这样卡住 经过这个职位后,一些打击和审判这为我工作。
input:not([type="checkbox"])input:not([type="radio"])
你可以以某种方式使用&和:not来重现“OR”的行为。
SomeElement.SomeClass [data-statement="things are getting more complex"] :not(:not(A):not(B)) { /* things aren't so complex for A or B */ }