Continuo lendo em todos os lugares que o CSS não diferencia maiúsculas de minúsculas, mas tenho esse seletor
.holiday-type.Selfcatering
que quando eu uso no meu HTML, assim, é captado
<div class="holiday-type Selfcatering">
Se eu mudar o seletor acima como este
.holiday-type.SelfCatering
Então o estilo não é escolhido.
Alguém está mentindo.
html
css
css-selectors
Sachin Kainth
fonte
fonte
Respostas:
Os seletores de CSS geralmente não diferenciam maiúsculas de minúsculas; isso inclui seletores de classe e ID.
Mas os nomes de classe HTML são case-sensitive (veja a definição de atributo), e que está causando um descompasso em sua segunda exemplo. Isso não mudou no HTML5 . 1
Isso ocorre porque a distinção entre maiúsculas e minúsculas dos seletores depende do que o idioma do documento diz :
Portanto, dado um elemento HTML com uma
Selfcatering
classe, mas sem umaSelfCatering
classe, os seletores.Selfcatering
e[class~="Selfcatering"]
corresponderão a ele, enquanto os seletores.SelfCatering
e[class~="SelfCatering"]
não. 2Se o tipo de documento definisse os nomes de classe como sem distinção entre maiúsculas e minúsculas, você teria uma correspondência independentemente.
1 No modo quirks para todos os navegadores, classes e IDs não diferenciam maiúsculas de minúsculas. Isso significa que os seletores de correspondência de caso sempre corresponderão. Esse comportamento é consistente em todos os navegadores por motivos herdados e é mencionado neste artigo .
2 Pelo que vale a pena, os seletores de nível 4 contêm uma sintaxe proposta para forçar uma pesquisa sem distinção entre maiúsculas e minúsculas nos valores de atributo usando
[class~="Selfcatering" i]
ou[class~="SelfCatering" i]
. Ambos os seletores corresponderão a um elemento HTML ou XHTML com umaSelfcatering
classe ou umaSelfCatering
classe (ou, é claro, ambos). No entanto, não existe essa sintaxe para seletores de classe ou ID (ainda?), Presumivelmente porque eles carregam semânticas diferentes dos seletores de atributos regulares (que não possuem semântica associada a eles) ou porque é difícil criar uma sintaxe utilizável.fonte
div
eDIV
coincidiam com o<div>
, mas os seletores de identificação e nome da classe precisavam fazer distinção entre maiúsculas e minúsculas. A menos que eu entenda mal a sua resposta?DIV
seletor não corresponderá mais.).selfcatering
e não faz distinção entre maiúsculas e minúsculas, por que deveria se importar se a classe éSelfcatering
ouSelfCatering
ou nãosElfcAtErInG
? o que estou perdendo?Talvez não seja mentira, mas precisa de esclarecimentos.
O CSS real em si não diferencia maiúsculas de minúsculas.
Por exemplo
mas os nomes devem ser sensíveis a maiúsculas e minúsculas para serem identificadores exclusivos.
Espero que ajude.
fonte
No modo peculiar, todos os navegadores se comportam como não diferenciam maiúsculas de minúsculas ao usar nomes de classe e ID de CSS.
Às vezes, quando você tem documentos errados, como o abaixo, seu navegador entra no modo peculiar.
você deve usar o doctype padrão
HTML 5
Estrito HTML 4.01
Transição HTML 4.01
Conjunto de quadros HTML 4.01
XHTML 1.0 Strict
XHTML 1.0 Transitional
Conjunto de quadros XHTML 1.0
XHTML 1.1
se a sua classe CSS ou o nome do ID se comportar sem distinção entre maiúsculas e minúsculas, verifique seu doctype.
fonte
CSS não diferencia maiúsculas de minúsculas.
Mas no HTML5 a classe e o ID diferenciam maiúsculas de minúsculas
Portanto, propriedades, valores CSS, nomes de pseudo classes, nomes de pseudo elementos, nomes de elementos não diferenciam maiúsculas de minúsculas
E a classe CSS, id, urls, famílias de fontes diferenciam maiúsculas de minúsculas.
note: no modo html quirks, o css não diferencia maiúsculas de minúsculas, mesmo para ID e classe (se você remover a declaração doctype)
Exemplo no CodePen: https://codepen.io/swapnilPakolu/pen/MWgvQyB?&editable=true#anon-signup
fonte