2012-09-09 12 views
175

Was die Syntax etwas zu tun ist, wie:Geben Sie mehrere Attributselektoren in CSS

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

Grundsätzlich möchte ich das input Element wählen, die das Attribut hat name="Sex" sowie das Attribut value="M":

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

Elemente wie die folgenden sollten nicht gewählt werden:

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

Antwort

261

Einfache input[name=Sex][value=M] würde ziemlich schön tun. Und es ist tatsächlich gut beschrieben in der standard doc:

Mehrere Attributselektoren verwendet werden können, um mehrere Attribute eines Elements zu beziehen, oder sogar mehrmals auf das gleiche Attribut.

Hier stimmt der Wähler alle Elemente SPAN deren „Hallo“ Attribut hat genau den Wert „Cleveland“ und dessen „Auf Wiedersehen“ -Attribut hat genau den Wert „Columbus“:

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

Als eine Randnotiz ist das Verwenden von Anführungszeichen um einen Attributwert nur erforderlich, wenn dieser Wert kein gültiger Bezeichner ist.

JSFiddle Demo

+2

gibt es so etwas, aber OR statt AND? –

+1

Du meinst anders als ',' (Komma)? – raina77ow

+1

können Sie nicht schreiben Span [Hallo = "Cleveland"], [Auf Wiedersehen = "Columbus"], aber Sie müssen einen (möglicherweise langen) Teil wiederholen. –

26

Concatenate die Attributselektoren:

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

Denn es verketten ist:

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

Und Vereinigung für nimmt es ist:

input[name="Sex"], input[value="M"] {} 
-2
[class*="test"],[class="second"] { 
background: #ffff00; 
} 
3

Nur hinzufügen, dass zwischen dem Selektor und der Öffnungsklammer kein Platz sein sollte.

td[someclass] 

wird funktionieren. Aber

td [someclass] 

wird nicht.

Verwandte Themen