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 */
}