CSS seçicileri genellikle büyük / küçük harfe duyarlı değildir; buna sınıf ve kimlik seçicileri de dahildir.
Ancak HTML sınıfı adları büyük / küçük harfe duyarlıdır (özellik tanımına bakın) ve bu, ikinci örneğinizde uyuşmazlığa neden olur. Bu HTML5'te değişmedi . 1
Bunun nedeni, seçicilerin büyük / küçük harfe duyarlılığının belge dilinin söylediklerine bağlı olmasıdır :
Seçicilerin kontrolü altında olmayan parçalar haricinde, tüm Seçiciler sözdizimi ASCII aralığı içinde büyük / küçük harfe duyarlı değildir (yani [az] ve [AZ] eşdeğerdir). Seçicilerdeki belge dili öğesi adlarının, nitelik adlarının ve nitelik değerlerinin büyük / küçük harfe duyarlılığı belge diline bağlıdır.
Yani, bir ile bir HTML öğesi verilen Selfcatering
sınıfın ancak olmadan SelfCatering
, sınıf seçicileri .Selfcatering
ve [class~="Selfcatering"]
bunu maç olacak, seçicileri ederken .SelfCatering
ve [class~="SelfCatering"]
olmaz. 2
Belge türü sınıf adlarını büyük / küçük harfe duyarsız olarak tanımladıysa, ne olursa olsun bir eşleşmeniz olur.
1 Tüm tarayıcılar için tuhaflıklar modunda, sınıflar ve kimlikler büyük / küçük harfe duyarlı değildir. Bu, büyük / küçük harfe uymayan seçicilerin her zaman eşleşeceği anlamına gelir. Bu davranış, eski nedenlerle tüm tarayıcılarda tutarlıdır ve bu makalede belirtilmiştir .
2 Değeri ne olursa olsun, Seçiciler düzey 4 , [class~="Selfcatering" i]
veya öğelerini kullanarak öznitelik değerleri üzerinde büyük / küçük harfe duyarlı olmayan bir aramayı zorlamak için önerilen bir sözdizimi içerir [class~="SelfCatering" i]
. Her iki seçici de bir HTML veya XHTML öğesini bir Selfcatering
sınıfla veya bir SelfCatering
sınıfla (veya elbette her ikisiyle) eşleştirir . Bununla birlikte, sınıf veya kimlik seçicileri için (henüz?) Böyle bir sözdizimi yoktur (muhtemelen?), Normal özellik seçicilerinden ( kendileriyle ilişkili herhangi bir anlam içermeyen) farklı semantikleri taşıdıkları veya kullanılabilir bir sözdizimi bulmak zor olduğu için.