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 Selfcateringsınıfın ancak olmadan SelfCatering, sınıf seçicileri .Selfcateringve [class~="Selfcatering"]bunu maç olacak, seçicileri ederken .SelfCateringve [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 Selfcateringsınıfla veya bir SelfCateringsı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.