11---
2- title : " @charset"
2+ title : CSS `@charset` アットルール
3+ short-title : " @charset"
34slug : Web/CSS/Reference/At-rules/@charset
4- original_slug : Web/CSS/@charset
5+ l10n :
6+ sourceCommit : e328268bb418551ab451881845881b5837c9da83
57---
68
7- ** ` @charset ` ** は [ CSS] ( /ja/docs/Web/CSS ) の [ アットルール ] ( /ja/docs/Web/CSS/Guides/Syntax/At-rules ) で、スタイルシートで使う文字エンコーディングを定義します。このルールはスタイルシートの最初の要素でなければならず、これより前には文字を一切記述してはいけません。 [ 入れ子の文 ] ( /ja/docs/Web/ CSS/Guides/Syntax/Introduction#nested_statements ) でないとしても、 [ 条件付きグループルール ] ( /ja/docs/Web/CSS/Guides/Syntax/At-rules#条件付きグループルール ) の中で使うことはできません。複数の ` @charset ` アットルールが定義されると、最初のものだけが使われます。HTML 要素の ` style ` 属性や、HTML ページの文字セットが関係している {{ HTMLElement("style") }} 要素の中では使えません 。
9+ ** ` @charset ` ** [ CSS] ( /ja/docs/Web/CSS ) ルールは、スタイルシートで使う文字エンコーディングを指定します。この構文は、 {{ cssxref("content") }} のように、一部の CSS プロパティで {{Glossary("ASCII")}} 以外の文字を使う場合に便利です。 ` @charset ` の最初の文字は ` @ ` 記号ですが、これは [ アットルール ] ( /ja/docs/Web/CSS/Guides/Syntax/At-rules ) ではありません。これは、スタイルシートの先頭にのみ置ける特定のバイトシーケンスです。Unicode バイトオーダーマーク以外の文字は、その前に置けません。また、引用符や空白の使い方など、通常の CSS 構文規則にも従いません 。
810
9- ``` css
10- @charset "utf-8";
11- ```
11+ ` @charset ` が文字セット宣言として認識されない場合は、通常の at-rule として解析されます。 [ CSS構文] ( /ja/docs/Web/CSS/Guides/Syntax ) モジュールは、このフォールバック動作を非推奨とし、スタイルシートの文法チェック時に破棄される、認識されないレガシールールとして定義しています。
1212
13- このアットルールは、非 ASCII 文字を一部の CSS プロパティ、例えば {{cssxref("content")}} などの中で使う際に有用です 。
13+ スタイルシートの文字エンコーディングを定義する方法はいくつかあるため、ブラウザーは以下の方法を、以下の順序で試し、いずれかの方法が見つかり次第処理を止めます 。
1414
15- スタイルシートの文字エンコーディングを定義する方法は複数あるので、ブラウザーは次の手順を順番に試します (そして 1 つでも結果が得られると止めます)。
16-
17- 1 . ファイル先頭にある [ Unicode バイト順] ( http://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A4%E3%83%88%E9%A0%86%E3%83%9E%E3%83%BC%E3%82%AF ) 文字 (BOM) の値
15+ 1 . ファイル先頭にある [ Unicode バイト順] ( https://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A4%E3%83%88%E9%A0%86%E3%83%9E%E3%83%BC%E3%82%AF ) 文字 (BOM) の値
18162 . ` Content-Type: ` HTTP ヘッダーの ` charset ` 属性、またはスタイルシートを送るのに使われたプロトコル内の同等のものから得られた値
19- 3 . CSS の ` @charset ` アットルール
20- 4 . 文書参照で定義されている文字エンコーディングを使用。{{ HTMLElement("link")}} 要素の ` charset ` 属性です。この方式は HTML5 で廃止されており、使うべきではありません。
17+ 3 . ` @charset ` CSS 宣言
18+ 4 . 参照元のドキュメントで定義されている文字エンコーディング、つまり {{ HTMLElement("link") }} 要素の` charset ` 属性を使う。この方法は非推奨なので、使わないでください
21195 . 文書が UTF-8 だと仮定する
2220
2321## 構文
@@ -27,24 +25,32 @@ original_slug: Web/CSS/@charset
2725@charset "iso-8859-15";
2826```
2927
30- ここで、
28+ ### 引数
3129
3230- _ charset_
33- - : 使う文字エンコーディングを意味する {{cssxref("< ; string> ; ")}} です。[ IANA-registry] ( https://www.iana.org/assignments/character-sets ) で定義されているウェブセーフな文字エンコーディングの名前でなければなりません。この名前は必ず 1 文字分の空白文字 (U+0020) の後に続き、二重引用符で囲われ、セミコロン記号で終わる必要があります。もし 1 つのエンコーディングに複数の名前が関連付けられている場合には、使用できるのは _ preferred_ とマークされているものだけです。
31+ - : 使う文字エンコーディングを意味する {{cssxref("< ; string> ; ")}} です。[ IANA-registry] ( https://www.iana.org/assignments/character-sets ) で定義されているウェブセーフな文字エンコーディングの名前でなければなりません。この名前は必ず 1 文字分の空白文字 (U+0020) の後に続き、二重引用符で囲われ、セミコロン記号で終わる必要があります。もし 1 つのエンコーディングに複数の名前が関連付けられている場合には、使えるのは _ preferred_ とマークされているものだけです。
3432
3533## 形式文法
3634
37- {{csssyntax}}
35+ ` @charset ` ルールは構文ではなく、以下の形式の特定のバイトシーケンスによって解析されることに気をつけてください。
36+
37+ ``` plain
38+ @charset "<charset>";
39+ ```
3840
3941## 例
4042
4143### 有効・無効な文字セットの宣言
4244
43- ``` css-nolint
44- @charset "UTF-8"; /* スタイルシートのエンコーディングを Unicode UTF-8 にします*/
45- @charset 'iso-8859-15'; /* 無効です。正しくない引用符が使用されています */
45+ ``` css-nolint example-good
46+ @charset "UTF-8"; /* Unicode UTF-8 にスタイルシートのエンコードを設定 */
47+ ```
48+
49+ ``` css-nolint example-bad
50+ @charset 'iso-8859-15'; /* 無効です。正しくない引用符が使われています */
51+ @charset "UTF-8"; /* 無効です。空白の数が 2 以上になっています */
4652 @charset "UTF-8"; /* 無効です。アットルールより前に文字(空白)があります */
47- @charset UTF-8; /* 無効です。' か " がなく、 文字セットは CSS の {{cssxref("< string>")}} ではありません */
53+ @charset UTF-8; /* 無効です。文字セットは CSS の < string> 型であり、二重引用符が必要です。 */
4854```
4955
5056## 仕様書
0 commit comments