Skip to content

Commit aa00a41

Browse files
naimonon77mfuji09
andauthored
Web/CSS/@charset を更新 (mdn#36135)
* Web/CSS/@charset を更新 * タイトルを他に合わせて修正 * 用語の統一 --------- Co-authored-by: Masahiro FUJIMOTO <mfujimot@gmail.com>
1 parent 1bf3b8d commit aa00a41

1 file changed

Lines changed: 25 additions & 19 deletions

File tree

  • files/ja/web/css/reference/at-rules/@charset

files/ja/web/css/reference/at-rules/@charset/index.md

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,21 @@
11
---
2-
title: "@charset"
2+
title: CSS `@charset` アットルール
3+
short-title: "@charset"
34
slug: 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) の値
1816
2. `Content-Type:` HTTP ヘッダーの `charset` 属性、またはスタイルシートを送るのに使われたプロトコル内の同等のものから得られた値
19-
3. CSS の `@charset` アットルール
20-
4. 文書参照で定義されている文字エンコーディングを使用。{{HTMLElement("link")}} 要素の `charset` 属性です。この方式は HTML5 で廃止されており、使うべきではありません。
17+
3. `@charset` CSS 宣言
18+
4. 参照元のドキュメントで定義されている文字エンコーディング、つまり {{ HTMLElement("link") }} 要素の`charset`属性を使う。この方法は非推奨なので、使わないでください
2119
5. 文書が 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("&lt;string&gt;")}} です。[IANA-registry](https://www.iana.org/assignments/character-sets) で定義されているウェブセーフな文字エンコーディングの名前でなければなりません。この名前は必ず 1 文字分の空白文字 (U+0020) の後に続き、二重引用符で囲われ、セミコロン記号で終わる必要があります。もし 1 つのエンコーディングに複数の名前が関連付けられている場合には、使用できるのは _preferred_ とマークされているものだけです。
31+
- : 使う文字エンコーディングを意味する {{cssxref("&lt;string&gt;")}} です。[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("&lt;string&gt;")}} ではありません */
53+
@charset UTF-8; /* 無効です。文字セットは CSS の <string> 型であり、二重引用符が必要です。 */
4854
```
4955

5056
## 仕様書

0 commit comments

Comments
 (0)