プログラミングに存在する場合)、
次の入力を含む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セレクターでこれを行う方法はないようです。
大したことではありませんが、私は好奇心cat盛な猫です。
何か案は?
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>
Vincentが述べたように、複数の:not()
sをつなぎ合わせることが可能です:
input:not([type='checkbox']):not([type='submit'])
まだ広くサポートされていない であるCSS4では、:not()
で複数のセレクターを使用できます
input:not([type='checkbox'],[type='submit'])
最新のブラウザはすべて、CSS3構文をサポートしています。この質問が行われた時点で、IE7およびIE8のフォールバックが必要でした。 1つのオプションは、 IE9.js のようなポリフィルを使用することでした。もう1つは、CSSのカスケードを活用することです。
input {
// styles for most inputs
}
input[type=checkbox] {
// revert back to the original style
}
input.checkbox {
// for completeness, this would have worked even in IE3!
}
input[type='text'], input[type='password']
{
// my css
}
それが正しい方法です。悲しいことに、CSSはプログラミング言語ではありません。