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 ответов:
&&
работает путем нанизывать-совместно множественные селекторы как-так:<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"])
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"])
мне больше нравится "ввод, который не имеет обоих этих типов":)