2011-04-07 31 views
53

Bu soru bir süredir beni rahatsız ediyor. Bir elemanın niteliğine benzeyen bir CSS seçici yazarken.CSS özellik seçicileri: Tırnak işaretleri ("," veya hiç?)

a[rel="nofollow"] 

Tırnak işaretleri ile ne yapmam gerektiğini asla bilmiyorum. Gerçekten gerekli mi?

Temel olarak, bunun için şartname nedir, çünkü web sitesinde bulamıyorum.

Bunların tümü geçerli sayılıyor mu?

a[rel="nofollow"] 
a[rel='nofollow'] 
a[rel=nofollow] 
+0

Onların gerekli olduğunu düşünmüyorum. – Headshota

+0

@Headshota: Bu tam durumda değil, hayır. –

+0

http://mothereff.in/unquoted-attributes#nofollow –

cevap

56

Konuya daha ayrıntılı bir şekilde yazdım: Unquoted attribute values in HTML and CSS.

Ben de sorunuza cevap yardımcı olacak bir araç oluşturduk: http://mothereff.in/unquoted-attributes

Unquoted attribute value validator

Genellikle özellik değeri (alfanümerik olduğunu ancak bazı istisnaları vardır sürece tırnak atlayabilirsiniz - tüm ayrıntılar için bağlantılı makaleye bakınız). Her neyse, onlara ihtiyaç duyduğunuzda alıntı eklemek için iyi bir uygulama olduğunu düşünüyorum, yani a[href^=http://] çalışmayacak, ancak a[href^="http://"] yapacak.

Belirtilen makalede CSS özelliklerinde uygun bölümlere bağlantılar vardır. http://www.w3.org/TR/CSS2/selector.html#attribute-selectors

ilk iki kullanım dizeleri -

+1

Bunu bilmek istediğim şey buydu. BoltClock'un anser da çok yararlı olsa da. Bu, RegExp'imin neye izin vermesi gerektiğini açıklıyor. – Olical

+0

@ Wolfy87 Cevabımı, geçen gün yazdığım bir makaleye bağlantıyla güncelledim. Bazı regexler içerir :) –

+1

(Bir cevap olarak sildiğimden beri cevabımı bir yorum olarak tekrar ediyorum) Pratik bir bakış açısından: İster tek ister çift kişilik olsun, tırnak kullanmanızı tavsiye ederim. Bu şekilde, öznitelik değerleri içindeki (tırnakların kendileri dışındaki) herhangi bir özel seçici karakterin kaçmasına gerek yoktur.Artı - ve bu sadece kişisel bir kodlama stili tercihidir, bu yüzden benim için sözümü kullanmayın - XHTML öznitelik alıntıları ile tutarlı buluyorum. – BoltClock

22

Özellik değerleri betimleyici veya dizge

olmalıdır. Üçüncü bir tanımlayıcı kullanır.

sadece karakter [a-z-0-9] ve ISO 10646 karakter U +, 00A0 ve daha yüksek, ayrıca kısa çizgi içerebilir (eleman adları, sınıfları ve kimlikleri de dahil olmak üzere)

tanımlayıcıları (-) ve alt çizgi (_); bir rakam, iki tire ya da bir tire ve ardından bir rakam ile başlayamazlar.

- http://www.w3.org/TR/CSS2/syndata.html#value-def-identifier

Strings ya çift tırnak veya tek tırnak ile yazılabilir.

- http://www.w3.org/TR/CSS2/syndata.html#strings

+2

Bunun yerine CSS3 spesifikasyonuna bağlanabilir: http://www.w3.org/TR/css3-selectors/#attribute-selectors –

+0

CSS2 aslında daha yararlıdır çünkü bir CSS2 seçici motoru yazmanın ortasındayım. Yani CSS2 benim için daha iyi ama yine de bağlantı için teşekkürler. – Olical

İlgili konular