@charset CSS at-rule digunakan untuk menentukan pengkodean karakter yang digunakan dalam style sheet.

Apakah Kumpulan Karakter dan Pengkodean?

Pengkodean karakter dokumen biasanya ditentukan dalam HTML dalam bentuk tag <link charset = “”> atau <meta ..>. Kalian harus selalu menggunakan UTF-8 sebagai pengkodean karakter dari stylesheet dan halaman HTML, dan menyatakan bahwa pengkodean dalam HTML. Untuk mengatur pengkodean karakter dalam dokumen HTML5, salah satu dari tiga deklarasi berikut ini sudah cukup:

 

Sangat jarang sekali perlu mendeklarasikan pengkodean karakter dalam CSS. Jika mendeklarasikan pengkodean karakter dalam HTML, kalian tidak perlu mendeklarasikannya di lembar CSS kalian. Jika stylesheet berada dalam file terpisah (tidak di dalam HTML), pengguna akan menyimpulkan pengkodean karakter dari stylesheet dengan mencari empat metode yang berbeda, dalam urutan yang ditunjukkan di bawah ini, dan jika keempat metode gagal, itu akan gunakan default. Agen pengguna akan mengamati prioritas berikut (dari prioritas tertinggi ke terendah) untuk menentukan pengkodean karakter dari stylesheet:

  • Atribut charset di header HTTP Content-Type yang dikirim oleh server web.
  • Tanda urutan byte Unicode, atau @charset at-rule.
  • Atribut charset di <link charset = “”> atau metadata lain dari mekanisme penautan
  • Charset dari style sheet mengacu atau dokumen

@charset harus menjadi hal pertama dalam stylesheet. Tidak bisa didahului oleh karakter apa pun, bahkan komentar! Ini hanya dapat didahului oleh Unicode Byte Order Mark jika tanda pesanan byte sesuai untuk pengkodean yang digunakan. Setiap @charset yang tidak dideklarasikan di awal stylesheet akan diabaikan oleh pengguna.

Setelah “@charset”, menentukan nama pengkodean karakter (dalam tanda kutip). Sebagai contoh:

 

Penulisan Official Syntax

Nama-charset adalah case-insensitive <string>, tetapi harus selalu utf-8 untuk style sheet baru. Itu harus merupakan nama dari pengkodean karakter yang aman web yang didefinisikan dalam IANA-registry.

Deklarasi @charset yang tidak valid karena nama enkode karakter tidak dibungkus dalam tanda kutip, dan deklarasi yang tidak valid karena ada baris kosong sebelum deklarasi @charset