CSS'de birden çok özellik seçici belirleme


297

Gibi bir şey yapmak için sözdizimi nedir:

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

Temel olarak, özniteliği yanı sıra inputözniteliği olan öğeyi seçmek istiyorum :name="Sex"value="M"

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

Aşağıdaki gibi elemanları gerektiği değil seçilebilir:

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

Yanıtlar:


437

Basit input[name=Sex][value=M]oldukça güzel olurdu. Ve aslında standart dokümanda iyi tanımlanmış :

Bir öğenin birçok özelliğine, hatta aynı özelliğe birkaç kez atıfta bulunmak için çoklu özellik seçicileri kullanılabilir.

Burada seçici, "merhaba" özelliği tam olarak "Cleveland" değerine ve "elveda" özelliği "Columbus" değerine sahip olan tüm SPAN öğeleriyle eşleşir:

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

Yan not olarak, yalnızca bu değer geçerli bir tanımlayıcı değilse, bir öznitelik değeri etrafında tırnak işaretleri kullanmak gerekir.

JSFiddle Demosu


8
böyle bir şey var, ama VE yerine VEYA?
törzsmókus

4
,(Virgül) dışında mı demek istiyorsun?
raina77ow

2
span [hello = "Cleveland"], [goodbye = "Columbus"] yazamazsınız, ancak (muhtemelen uzun) bir bölümü tekrarlamanız gerekir.
törzsmókus

Ön işlemcileri kullanmadığınız sürece gerçekten (en azından şimdilik) zorundasınız. Consult Konuyu daha fazla ayrıntı için.
raina77ow

68

Birleştirmek için:

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

Ve sendika almak için:

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

31

Özellik seçicileri birleştirin:

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

1
Özellik değerlerinden en az birinin alıntılanması gerektiğini belirtmek gerekir. input[name=Sex][value=M]Tırnak kullanmayan tek bir özniteliğe sahip bir seçiciye sahip olsanız bile, bunu yazdıysanız bu başarısız olur .
stevec

1
@stevec Bunu kabul edilen cevaba mı koymak istediniz? Cevabımdaki değerleri alıntıladım. Bunun doğru olduğunu da sanmıyorum. Yanıt belirli örnek içeriyorsa ancak bu örnekte bulunmuyorsa tırnak işareti kullanmanız gerekir. mothereff.in/unquoted-attributes
Dennis

Bu notu ekledim çünkü tırnaksız birkaç tarayıcıda denedim ve başarısız oldu. Sorunun en az birinden alıntı yapılmadan belirsiz olduğu, çünkü adı olan bir girdi olarak yorumlanabileceğine Sex][value=M
inanıyorum

@stevec köşeli ayraçlar, tam olarak bu nedenle alıntılanmamış özniteliklerde geçersizdir. Bu örnek Firefox ve Chrome'da çalışır: jsfiddle.net/o2abekdh/3
Dennis

4

Sadece seçici ve açılış braketi arasında boşluk olmamalıdır.

td[someclass] 

çalışacak. Fakat

td [someclass] 

olmaz.


-6
[class*="test"],[class="second"] {
background: #ffff00;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.