CSSで複数の属性セレクターを指定する


296

次のようなことをするための構文は何ですか?

input[name="Sex" AND value="M"]

基本的に、input属性と属性を持つ要素を選択name="Sex"しますvalue="M"

<input type="radio" name="Sex" value="M" />

次のような要素は選択しないでください。

<input type="radio" name="Sex" value="F" />

回答:


437

シンプルinput[name=Sex][value=M]はかなりいいでしょう。そして、それは実際には標準のドキュメントでよく説明されています

複数の属性セレクターを使用して、要素の複数の属性を参照したり、同じ属性を複数回参照したりすることもできます。

ここで、セレクターは、「hello」属性の値が「Cleveland」と正確に一致し、「goodbye」属性の値が「Columbus」と完全に一致するすべてのSPAN要素に一致します。

span[hello="Cleveland"][goodbye="Columbus"] { color: blue; }

補足として、属性値を囲む引用符は、この値が有効な識別子ではない場合にのみ必要です。

JSFiddleデモ


8
このようなものがありますが、ANDの代わりにORですか?
törzsmókus

4
,(カンマ)以外の意味ですか?
raina77ow 2016

2
span [hello = "Cleveland"]、[goodbye = "Columbus"]と書くことはできませんが、(おそらく長い)部分を繰り返す必要があります。
törzsmókus

プリプロセッサを使用しない限り、実際には(少なくとも現時点では)する必要があります。相談してくださいこのスレッドを詳細については。
raina77ow 2016

67

それを連結するためです:

input[name="Sex"][value="M"] {}

そして、組合を取るためには:

input[name="Sex"], input[value="M"] {}

31

属性セレクターを連結します。

input[name="Sex"][value="M"]

1
属性値の少なくとも1つは引用符で囲む必要があることに注意してください。input[name=Sex][value=M]引用符を使用しない属性を1つだけ持つセレクターを持つことが有効であるかのように記述した場合、これは失敗 します。
stevec

1
@stevecこれを受け入れられた回答に置くつもりでしたか?私は私の答えに値を引用しました。それも本当だとは思いません。回答に特定の文字が含まれているが、この例では含まれていない場合は、引用符が必要です。mothereff.in/unquoted-attributes
デニス

引用符なしでいくつかのブラウザで試してみましたが、すべて失敗しました。私は、問題は、それは名前があるの入力として解釈される可能性があるため、少なくとも1の引用符なし、それが曖昧であるということであると信じているSex][value=M
stevec

@stevecブラケットは、その正確な理由により、引用符で囲まれていない属性では無効です。この例は、FirefoxとChromeで動作します:jsfiddle.net/o2abekdh/3
Dennis


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.