1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
---
title: '@charset'
slug: Web/CSS/@charset
tags:
- Regla-at
translation_of: Web/CSS/@charset
---
<div>{{ CSSRef }}</div>
<h2 id="Resumen">Resumen</h2>
<p>La <a href="/en/CSS/At-rule" title="At-rule">regla-at</a> <strong><code>@charset</code></strong> de <a href="/en/CSS" title="CSS">CSS</a> 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 <a href="/en/CSS/Syntax#nested_statements" title="en/CSS/Syntax#nested_statements">declaración anidada</a>, no puede ser usada dentro de <a href="/en/CSS/At-rule#Conditional_Group_Rules" title="en/CSS/At-rule#Conditional_Group_Rules">grupos de reglas-at condicionales</a>. Si se definen varias reglas-at <code>@charset</code>, solamente se usará la primera. La regla-at <code>@charset</code> no puede ser usada dentro de un atributo <code>style</code> style en un elemento HTML o dentro del elemento {{ HTMLElement("style") }} , ya que en estos casos se tomará en cuenta la codificación de la página HTML contenedora.</p>
<p>Esta regla-at es útil cuando se usan caracteres fuera de la codificación ASCII en alguna propiedad CSS, como {{ cssxref("content") }}.</p>
<p>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):</p>
<ol>
<li>El valor de la <a href="https://es.wikipedia.org/wiki/Marca_de_orden_de_bytes" title="http://en.wikipedia.org/wiki/Byte_order_mark">Marca de orden de bytes</a> al principio del archivo.</li>
<li>El valor dado por el atributo charset del encabezado HTTP <code>Content-Type:</code> o su equivalente en el protocolo usado para descargar la hoja de estilos.</li>
<li>La regla-at <code>@charset</code> de CSS.</li>
<li>Usar la codificación de caracteres definida en el documento de referencia: el atributo <code>charset</code> attribute del elemento {{ HTMLElement("link") }}. Este método es obsoleto para HTML5 y no debe ser usado.</li>
<li>Asumir que el documento es UTF-8.</li>
</ol>
<h2 id="Sintaxis">Sintaxis</h2>
<pre>@charset "UTF-8";
@charset 'iso-8859-15';
</pre>
<p>donde:</p>
<dl>
<dt style="margin: 0 40px;"><em>charset</em></dt>
<dd style="margin: 0 40px;">Es un valor {{cssxref("<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 <a href="http://www.iana.org/assignments/character-sets">registro IANA</a>. Si varios nombres están asociados a una codificación, solamente se usará el que está marcado como <em>principal</em>.</dd>
</dl>
<h3 id="Sintaxis_formal">Sintaxis formal</h3>
<pre class="syntaxbox">{{csssyntax}}
</pre>
<h2 id="Ejemplos">Ejemplos</h2>
<pre class="brush: css">@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 {{cssxref("<string>")}} de CSS */
</pre>
<h2 id="Especificaciones">Especificaciones</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Especificación</th>
<th scope="col">Estado</th>
<th scope="col">Comentarios</th>
</tr>
</thead>
<tbody>
<tr>
<td>{{ SpecName('CSS2.1', 'syndata.html#x57', '@charset') }}</td>
<td>{{ Spec2('CSS2.1') }}</td>
<td>Definición inicial</td>
</tr>
</tbody>
</table>
<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilidad de navegadores</h2>
<p>{{ CompatibilityTable() }}</p>
<div id="compat-desktop">
<table class="compat-table">
<tbody>
<tr>
<th>Característica</th>
<th>Chrome</th>
<th>Firefox (Gecko)</th>
<th>Internet Explorer</th>
<th>Opera</th>
<th>Safari</th>
</tr>
<tr>
<td>Soporte básico</td>
<td>2.0</td>
<td>{{ CompatGeckoDesktop("1.8") }}<sup>[1]</sup></td>
<td>5.5<sup>[2]</sup></td>
<td>9</td>
<td>4</td>
</tr>
</tbody>
</table>
</div>
<div id="compat-mobile">
<table class="compat-table">
<tbody>
<tr>
<th>Característica</th>
<th>Android</th>
<th>Firefox Mobile (Gecko)</th>
<th>IE Mobile</th>
<th>Opera Mobile</th>
<th>Safari Mobile</th>
</tr>
<tr>
<td>Soporte básico</td>
<td>2.1</td>
<td>{{ CompatGeckoMobile("1.8") }}</td>
<td>5.5<sup>[2]</sup></td>
<td>10.0</td>
<td>4</td>
</tr>
</tbody>
</table>
</div>
<p>[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.</p>
<p>[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.</p>
|