CSS'de = “XYZ” için etiket nasıl seçilir?


256

HTML:

<label for="email">{t _your_email}:</label>

CSS:

label {
  display: block;
  width: 156px;
  cursor: pointer;
  padding-right: 6px;
  padding-bottom: 1px;
}

Düzen değişiklikleri yapmak için 'for' özelliğine göre etiketi seçmek istiyorum.

Yanıtlar:


497

Seçici label[for=email], CSS'de şöyle olur:

label[for=email]
{
    /* ...definitions here... */
}

... veya DOM'u kullanarak JavaScript'te:

var element = document.querySelector("label[for=email]");

... veya jQuery kullanarak JavaScript'te:

var element = $("label[for=email]");

Bir özellik seçici . Bazı tarayıcıların (örneğin IE <8 sürümleri) özellik seçicileri desteklemeyebileceğini, ancak daha yeni tarayıcıların desteklediğini unutmayın. IE6 ve IE7 gibi eski tarayıcıları desteklemek için ne yazık ki bir sınıf (iyi veya başka bir yapısal yol) kullanmanız gerekir.

(Şablonun {t _your_email}bir alanı dolduracağını varsayıyorum id="email". Değilse, bunun yerine bir sınıf kullanın.)

Seçtiğiniz özniteliğin değeri bir CSS tanımlayıcısı kurallarına uymuyorsa (örneğin, içinde boşluklar veya köşeli ayraçlar varsa veya bir rakamla başlıyorsa vb.), değeri:

label[for="field[]"]
{
    /* ...definitions here... */
}

Bunlar tek veya çift tırnak olabilir .


Koşullu yorumları kullanarak ie7 için bir sınıfa değiştireceğim, harika cevap için teşekkürler!
Kyle

Ve şimdi jQuery dokümanları, tek kelimeler için tırnak işaretlerine ihtiyacınız olmadığını söylüyor, bu yüzden tekrar CSS ile eşleşiyor (bu bağlamda).
TJ Crowder

6
Herkesin kafa karışıklığını önlemek için (sadece kendim vardı) labelve[for=email]
paddotk 15:13

IE8, sayfada <! DOCTYPE> bildirilmiş olduğu sürece özellik seçicileri desteklemez.
ilinamorato

1
@TJCrowder Anlıyorum. Sadece test ettiğim gibi konuyu açıklığa kavuşturuyordum.
ilinamorato

0

İçerik bir değişkendirse, onu tırnak işaretleri ile birleştirmek gerekir. Benim için çalıştı. Bunun gibi:

itemSelected (id: number) {
    console.log ('etiket içerir', document.querySelector ("label [for = '" + id + "']"));
}
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.