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 Selfcatering
klasy, ale bez SelfCatering
klasy selektorów .Selfcatering
i [class~="Selfcatering"]
będzie go dopasować, a selektorów .SelfCatering
i [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 Selfcatering
klasą lub SelfCatering
klasą (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.