Resumen
La regla-at @charset
de CSS especifica la codificación de caracteres usada en la hoja de estilos. Éste debe ser el primer elemento en la hoja de estilos, y no debe ser precedidad por ningun otro caracter; al no ser una declaración anidada, no puede ser usada dentro de grupos de reglas-at condicionales. Si se definen varias reglas-at @charset
, solamente se usará la primera. La regla-at @charset
no puede ser usada dentro de un atributo style
style en un elemento HTML o dentro del elemento <style>
, ya que en estos casos se tomará en cuenta la codificación de la página HTML contenedora.
Esta regla-at es útil cuando se usan caracteres fuera de la codificación ASCII en alguna propiedad CSS, como content
.
Habiendo diferentes maneras de definir la codificación de caracteres en una hoja de estilos, el navegador intentará seguir este orden para identificarlo (deteniéndose en el primer paso que dé resultado):
- El valor de la Marca de orden de bytes al principio del archivo.
- El valor dado por el atributo charset del encabezado HTTP
Content-Type:
o su equivalente en el protocolo usado para descargar la hoja de estilos. - La regla-at
@charset
de CSS. - Usar la codificación de caracteres definida en el documento de referencia: el atributo
charset
attribute del elemento<link>
. Este método es obsoleto para HTML5 y no debe ser usado. - Asumir que el documento es UTF-8.
Sintaxis
@charset "UTF-8"; @charset 'iso-8859-15';
donde:
- charset
- Es un valor
<string>
que denota la codificación de caracteres que será usada. Debe ser el nombre de una codificación de caracteres compatible con Web, definida en el registro IANA. Si varios nombres están asociados a una codificación, solamente se usará el que está marcado como principal.
Sintaxis formal
@charset "<charset>";
Ejemplos
@charset "UTF-8"; /* Establece la codificación de la hoja de estilos a Unicode UTF-8 */
@charset 'iso-8859-15'; /* Establece la codificación de la hoja de estilos a Latin-9 (idiomas de Europa Occidental, con símbolo de euro) */
@charset "UTF-8"; /* Inválido, hay un caracter (espacio) antes de la regla-at */
@charset UTF-8; /* Inválido, sin comillas simples o dobles, el valor no es una cadena <string>
de CSS */
Especificaciones
Especificación | Estado | Comentarios |
---|---|---|
CSS Level 2 (Revision 1) The definition of '@charset' in that specification. |
Recommendation | Definición inicial |
Compatibilidad de navegadores
Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Soporte básico | 2.0 | 1.5 (1.8)[1] | 5.5[2] | 9 | 4 |
Característica | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Soporte básico | 2.1 | 1.0 (1.8) | 5.5[2] | 10.0 | 4 |
[1] Firefox 1.0 soporta sólo una sintaxis inválida donde la codificación de caracteres no se establece entre comillas sencillas o dobles.
[2] De IE 5.5 a IE 7, IE también soporta la sintaxis inválida donde la codificación de caracteres no se establece entre comillas sencillas o dobles.