CSS "и "и" или"


у меня довольно большие проблемы, потому что мне нужно анафематизировать от стилизации некоторых типов ввода. У меня было что-то вроде:

.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 доктора.

7 70

7 ответов:

&& работает путем нанизывать-совместно множественные селекторы как-так:

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

и (&&):

.registration_form_right input:not([type="radio"]):not([type="checkbox"])

или (||):

.registration_form_right input:not([type="radio"]), 
   .registration_form_right input:not([type="checkbox"])

выберите Свойства a и b на X элемент:

X[a][b]

выберите Свойства a или b на X элемент:

X[a],X[b]

The :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"] {
  ...
}

некоторое дублирование там, но это небольшая цена, чтобы заплатить за более высокую совместимость.

Я думаю, вы ненавидите писать больше селекторов и делить их на запятую?

.registration_form_right input:not([type="radio"]),  
.registration_form_right input:not([type="checkbox"])  
{  
}

и кстати это

not([type="radio" && type="checkbox"])  

мне больше нравится "ввод, который не имеет обоих этих типов":)

на всякий случай, если кто-то застрял, как я. После перехода через пост и некоторые хиты и суда это сработало для меня.

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