Селектор типа ввода CSS. Возможно ли иметь синтаксис "или" или "нет"?

Если они существуют в программировании),

Если у меня есть HTML-форма со следующими входами:

<input type="text" />
<input type="password" />
<input type="checkbox" />

Я хочу применить стиль ко всем входам, которые либо type="text", либо type="password".

В качестве альтернативы, я бы согласился на все входные данные, где type != "checkbox".

Мне кажется, что я должен это сделать:

input[type='text'], input[type='password']
{
   // my css
}

Нет ли способа сделать:

input[type='text',type='password']
{
   // my css
}

или

input[type!='checkbox']
{
   // my css
}

Я посмотрел вокруг, и не похоже, что есть способ сделать это с помощью одного селектора CSS.

Неважно, конечно, но я просто любопытный кот.

Любые идеи?

Ответ 1

CSS3 имеет псевдоклассом : not()

input:not([type='checkbox']) {    
    visibility: hidden;
}
<p>If <code>:not()</code> is supported, you'll only see the checkbox.</p>
    	                              
<ul>
  <li>text: (<input type="text">)</li>  
  <li>password (<input type="password">)</li>    	
  <li>checkbox (<input type="checkbox">)</li> 
 </ul>

Ответ 2

input[type='text'], input[type='password']
{
   // my css
}

Это правильный способ сделать это. К сожалению, CSS не является языком программирования.