MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

Resumo

A regra @charset especifica a codificação de caracteres utilizada na folha de estilo. Deve ser o primeiro elemento na folha de estilo e não ser precedida de qualquer caráter; uma vez que não é uma declaração aninhada, ele não pode ser usado dentro de um grupo condicional de regras. Se vários @charset são definidos, apenas o primeiro é usado, e não pode ser usado dentro de um atributo de estilo em um elemento HTML ou dentro do elemento <style>, onde o conjunto de caracteres da página HTML é relevante.

Esta regra at (at-rule) é útil quando se usa caracteres não ASCII em algumas propriedades CSS, como conteúdo.

Como existem várias maneiras de definir a codificação de caracteres em uma folha de estilo, o navegador vai tentar os seguintes métodos na seguinte ordem (e parar assim que um produzir um resultado):

  1. O valor do carácter de ordem de byte Unicode colocado no início do arquivo.
  2. O valor dado pelo atributo charset do Content-Type: cabeçalho HTTP ou o equivalente no protocolo usado para servir a folha de estilo.
  3. O @charset CSS.
  4. Use a codificação de caracteres definidos pelo documento referente: o atributo charset do elemento <link>. Este método é obsoleto em HTML5 e não deve ser utilizado.
  5. Assume que o documento é UTF-8.

Sintaxe

  @charset charset;

onde :

charset
É uma <string> denotando a codificação de caracteres a ser usado. Ele deve ser o nome de uma codificação de caracteres segura para a Web definido no registro IANA. Se vários nomes estão associados com uma codificação, apenas um é marcado como preferido e assim ser utilizado.

Exemplos

@charset "UTF-8";       /* Define a codificação da folha de estilo para Unicode UTF-8 */
@charset 'iso-8859-15'; /* Define a codificação da folha de estilo para Latin-9 (línguas da Europa Ocidental, com sinal de euro) */
 @charset "UTF-8";      /* Inválido, há um caracter (espaço) antes da regra */
@charset UTF-8;         /*  Inválido, sem ‘ ou ", o conjunto de caracteres não é uma <string> CSS */

Especificações

Especificação Status Comentário
CSS Level 2 (Revision 1)
The definition of '@charset' in that specification.
Recommendation  

Compatibilidade de navegadores

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suporte básico 2.0 1.5 (1.8)[*] 5.5 [**] 9 4
Característica Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suporte básico 2.1 1.0 (1.8) 5.5 [**] 10.0 4

[*] Firefox 1.0 suportado apenas uma sintaxe inválida onde a codificação de caracteres não está definido entre aspas simples ou duplas.
[**] A partir IE 5.5 para o IE 7 incluído, IE também apoiou a sintaxe inválida onde a codificação de caracteres não está definido entre aspas simples ou duplas.

Etiquetas do documento e colaboradores

 Colaboradores desta página: Guillaume-Heras, fscholz, lucascaprio
 Última atualização por: Guillaume-Heras,