Sigo leyendo en todas partes que CSS no distingue entre mayúsculas y minúsculas, pero tengo este selector
.holiday-type.Selfcatering
que cuando uso en mi HTML, como este, se recoge
<div class="holiday-type Selfcatering">
Si cambio el selector anterior así
.holiday-type.SelfCatering
Entonces el estilo no se recoge.
Alguien está diciendo mentiras.
html
css
css-selectors
Sachin Kainth
fuente
fuente
Respuestas:
Los selectores de CSS generalmente no distinguen entre mayúsculas y minúsculas; Esto incluye selectores de clase e ID.
Pero los nombres de clase HTML distinguen entre mayúsculas y minúsculas (consulte la definición del atributo), y eso está causando una falta de coincidencia en su segundo ejemplo. Esto no ha cambiado en HTML5 . 1
Esto se debe a que la diferencia entre mayúsculas y minúsculas de los selectores depende de lo que dice el lenguaje del documento :
Por lo tanto, dado un elemento HTML con una
Selfcatering
clase pero sin unaSelfCatering
clase, los selectores.Selfcatering
y[class~="Selfcatering"]
lo coincidirán, mientras que los selectores.SelfCatering
y[class~="SelfCatering"]
no lo harían. 2Si el tipo de documento definía los nombres de clase como mayúsculas y minúsculas, entonces tendría una coincidencia independientemente.
1 En el modo peculiar para todos los navegadores, las clases y los ID no distinguen entre mayúsculas y minúsculas. Esto significa que los selectores que no coinciden entre mayúsculas y minúsculas siempre coincidirán. Este comportamiento es coherente en todos los navegadores por motivos heredados, y se menciona en este artículo .
2 Para lo que vale, el nivel 4 de Selectores contiene una sintaxis propuesta para forzar una búsqueda que no distingue entre mayúsculas y minúsculas en los valores de atributo usando
[class~="Selfcatering" i]
o[class~="SelfCatering" i]
. Ambos selectores harán coincidir un elemento HTML o XHTML con unaSelfcatering
clase o unaSelfCatering
clase (o, por supuesto, ambas). Sin embargo, no existe tal sintaxis para los selectores de clase o ID (¿todavía?), Presumiblemente porque llevan una semántica diferente de los selectores de atributos regulares (que no tienen semántica asociada a ellos) o porque es difícil encontrar una sintaxis utilizable.fuente
div
yDIV
coincidían con los<div>
, pero el id y los selectores de nombre de clase tenían que ser exactamente sensibles a mayúsculas y minúsculas. ¿A menos que haya entendido mal su respuesta?DIV
selector ya no coincidiría)..selfcatering
y selectores son sensibles a mayúsculas, ¿por qué debería importa si la clase esSelfcatering
oSelfCatering
osElfcAtErInG
? ¿Qué me estoy perdiendo?Quizás no sea una mentira, pero necesita aclaración.
El css real en sí no distingue entre mayúsculas y minúsculas.
Por ejemplo
pero los nombres deben ser sensibles a mayúsculas y minúsculas para ser identificadores únicos.
Espero que ayude.
fuente
En el modo peculiar, todos los navegadores se comportan sin distinción entre mayúsculas y minúsculas cuando usan clases de CSS y nombres de identificación.
A veces, cuando tiene doctypes incorrectos como abajo, su navegador entra en modo caprichos.
deberías usar doctype estándar
HTML 5
HTML 4.01 estricto
HTML 4.01 Transicional
Conjunto de marcos HTML 4.01
XHTML 1.0 Strict
XHTML 1.0 Transitional
Conjunto de marcos XHTML 1.0
XHTML 1.1
si su clase de CSS o nombres de identificación no distinguen entre mayúsculas y minúsculas, verifique su doctype.
fuente
CSS no distingue entre mayúsculas y minúsculas.
Pero en HTML5, la clase y la ID distinguen entre mayúsculas y minúsculas
Entonces, las propiedades CSS, los valores, los nombres de pseudo clases, los nombres de pseudo elementos, los nombres de elementos no distinguen entre mayúsculas y minúsculas
Y la clase CSS, id, URL, familias de fuentes distinguen entre mayúsculas y minúsculas.
nota: en el modo html quirks, css no distingue entre mayúsculas y minúsculas, incluso para ID y clase (si elimina la declaración doctype)
Ejemplo en CodePen: https://codepen.io/swapnilPakolu/pen/MWgvQyB?&editable=true#anon-signup
fuente