CSS "и" and "или"
У меня очень большие проблемы, потому что мне нужно анафематизировать стилирование некоторых типов ввода. У меня было что-то вроде:
.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"])
Как использовать &&
? И скоро мне нужно будет использовать ||
, и я думаю, что использование будет таким же.
Update:
Я до сих пор не знаю, как правильно использовать ||
и &&
. Я не мог найти ничего в документах W3.
Ответы
Ответ 1
&&
работает с помощью сочетания нескольких селекторов типа-so:
<div class="class1 class2"></div>
div.class1.class2
{
/* foo */
}
Другой пример:
<input type="radio" class="class1" />
input[type="radio"].class1
{
/* foo */
}
"||" работает, разделяя несколько селекторов запятыми, например:
<div class="class1"></div>
<div class="class2"></div>
div.class1,
div.class2
{
/* foo */
}
В качестве побочного примечания я бы рекомендовал не использовать селектор "нет", потому что он не поддерживается Internet Explorer. На основании одного опроса 60% людей используют некоторую версию Internet Explorer, поэтому ваш сайт не будет работать для многих людей.
Ответ 2
И (&&
):
.registration_form_right input:not([type="radio"]):not([type="checkbox"])
ИЛИ (||
):
.registration_form_right input:not([type="radio"]),
.registration_form_right input:not([type="checkbox"])
Ответ 3
Чтобы выбрать свойства a
AND b
элемента X
:
X[a][b]
Чтобы выбрать свойства a
ИЛИ b
элемента X
:
X[a],X[b]
Ответ 4
Псевдокласс класса :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"] {
...
}
Некоторое дублирование там, но это небольшая цена для оплаты более высокой совместимости.
Ответ 5
Я думаю, вы ненавидите писать больше селекторов и делить их запятой?
.registration_form_right input:not([type="radio"]),
.registration_form_right input:not([type="checkbox"])
{
}
и BTW это
not([type="radio" && type="checkbox"])
смотрит на меня скорее как "вход, который не имеет обоих этих типов":)
Ответ 6
На всякий случай, если кто-то застрял как я.
После того, как вы отправили сообщение, и некоторые хиты и испытания
это сработало для меня.
input:not([type="checkbox"])input:not([type="radio"])
Ответ 7
Вы можете каким-то образом воспроизвести поведение "ИЛИ", используя and и: not.
SomeElement.SomeClass [data-statement="things are getting more complex"] :not(:not(A):not(B)) {
/* things aren't so complex for A or B */
}