Selektory CSS zasadniczo nie rozróżniają wielkości liter; obejmuje to selektory klas i identyfikatorów.
Jednak w nazwach klas HTML rozróżniana jest wielkość liter (patrz definicja atrybutu), co powoduje niedopasowanie w drugim przykładzie. Nie zmieniło się to w HTML5 . 1
Wynika to z tego, że rozróżnianie wielkości liter w selektorach zależy od tego, co mówi język dokumentu :
W składni wszystkich selektorów rozróżniana jest wielkość liter w zakresie ASCII (tj. [Az] i [AZ] są równoważne), z wyjątkiem części, które nie są pod kontrolą selektorów. Rozróżnianie wielkości liter w nazwach elementów języka dokumentu, nazwach atrybutów i wartości atrybutów w selektorach zależy od języka dokumentu.
Tak więc, biorąc pod uwagę elementu HTML z Selfcateringklasy, ale bez SelfCateringklasy selektorów .Selfcateringi [class~="Selfcatering"]będzie go dopasować, a selektorów .SelfCateringi [class~="SelfCatering"]nie będzie. 2)
Jeśli typ dokumentu zdefiniował nazwy klas jako bez rozróżniania wielkich i małych liter, to pasowałbyś do niego niezależnie.
1 W trybie dziwactwa dla wszystkich przeglądarek, klasy i identyfikatory nie uwzględniają wielkości liter. Oznacza to, że selektory niedopasowane wielkości liter zawsze będą pasować. To zachowanie jest spójne we wszystkich przeglądarkach ze względów starszych i zostało wspomniane w tym artykule .
2 Jeśli chodzi o to, co jest warte, poziom selektorów 4 zawiera proponowaną składnię do wymuszania rozróżniania wielkości liter w atrybutach za pomocą [class~="Selfcatering" i]lub [class~="SelfCatering" i]. Oba selektory będą pasowały do elementu HTML lub XHTML z Selfcateringklasą lub SelfCateringklasą (lub, oczywiście, obiema). Jednak nie ma takiej składni dla klasy lub identyfikatora selektorów (jeszcze?), Przypuszczalnie dlatego, że noszą różne semantykę od zwykłych selektorów atrybutów (które nie semantykę z nimi związane), albo dlatego, że trudno jest wymyślić składni użytkowej.