@charset

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

We’d love to hear your thoughts on the next set of proposals for the JavaScript language. You can find a description of the proposals here.
Please take two minutes to fill out our short survey.

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

css
@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

Specification
CSS Syntax Module Level 3
# at-ruledef-charset

Compatibilidade de navegadores