CSS エスケープ / アンエスケープ

CSS の識別子やセレクター用に CSS.escape() と同じ方法でテキストをエスケープしたり、引用符付きの CSS 文字列用にエスケープしたりします。\HEX のアンエスケープにも対応。

19 文字 · 19 バイト(UTF-8)

0 文字 · 0 バイト(UTF-8)

すべてブラウザ内で実行されます。データがアップロードされることはありません。

CSS エスケープとは?

テキストを、querySelector などのセレクターの id やクラスのような CSS 識別子 として使えるように、CSSOM の CSS.escape() アルゴリズムに従ってエスケープするか、引用符付きの CSS 文字列の内容としてエスケープします。CSS のエスケープをテキストに戻すこともできます。

CSS エスケープの使い方

  1. エスケープ または アンエスケープ を選びます。
  2. エスケープする場合は コンテキスト として 識別子 / セレクター(CSS.escape) または 引用符で囲んだ文字列値 を選び、必要に応じて 非 ASCII を \HEX でエスケープ を選びます。
  3. id、クラス、文字列を 入力 に入力し、出力 をコピーします。

例

入力
0a#b.c
出力
\30 a\#b\.c

CSS エスケープを使うべき場面

id やクラスが数字で始まる場合や、.、:、#、スペースなどの文字を含む場合は、必ず識別子モードを使ってください。たとえば document.querySelector("#" + CSS.escape(id)) です。content: の値やフォント名には文字列モードを使います。CSS の検証やミニファイは行いません。

CSS エスケープの仕組み

識別子モードは CSSOM §2.1 に従います。NUL は U+FFFD になり、制御文字、先頭の数字、先頭のハイフンの後の数字は \HEX のコードポイントのエスケープになり、単独の - は \- になり、英字、数字、-、_、非 ASCII 文字はそのまま残り、それ以外の ASCII 文字にはバックスラッシュが付きます(# → \#)。文字列モードでは、\、"、' がバックスラッシュでエスケープされ、制御文字(改行を含む)は \HEX になります。アンエスケープでは、\ と 1〜6 桁の 16 進数、省略可能な空白 1 つを読み取り、エスケープされた改行を取り除き、それ以外のエスケープされた文字はそのまま残します。

一般的な使用例

  • id が数字で始まる要素を選択する(#\31 23)
  • ユーザーが作成したクラス名からセレクターを組み立てる
  • content: の文字列に特殊文字を書く
  • ツールが生成したエスケープ済みのセレクターを読む

よくある質問

先頭の数字が \3X になるのはなぜですか?

CSS の識別子は数字で始められないため、数字はコードポイントで書かれ(1 = \31)、エスケープを終わらせるスペースが続きます。

ブラウザーの CSS.escape() と同じですか?

はい。識別子モードは同じ仕様を実装しており、出力も同一です。

非 ASCII 文字をエスケープする必要はありますか?

いいえ。UTF-8 の CSS ファイルにはそのまま含められます。このオプションは、ASCII のみのスタイルシート向けです。

おすすめの次のステップ

CSS フォーマッター
Prettier で CSS を整形:宣言は 1 行に 1 つ、スペースを統一し、スペース 2 つ・4 つ・タブを選べ、メディアクエリもきれいにネスト。処理はブラウザ内で完結します。
CSS box-shadowジェネレーター
CSSのbox-shadowを視覚的に作成します。複数レイヤーの重ね、オフセット、ぼかし、広がり、inset、RGBAの不透明度に対応し、ライブプレビューで見ながらコードをコピーできます。
CSSグラデーションジェネレーター
ドラッグできるカラーストップ、角度、繰り返しモード、OKLCH補間に対応した、線形・放射・円錐のCSSグラデーションを設計します。ライブプレビューで確認し、コードをコピーできます。
CSS Flexboxジェネレーター
flex-direction、wrap、justify-content、align-items、gapと、アイテムごとのflex、order、align-selfを視覚的に設定します。子要素のライブプレビューとコピー可能なCSS付きです。
CSS Gridジェネレーター
CSS Gridレイアウトを視覚的に作成します。grid-template-columns/rows、検証付きの名前付きエリア、gap、揃え、アイテムごとの配置に対応し、きれいなCSSをコピーできます。
コードミニファイアー
JavaScript(Terser)、CSS(CSSO)、HTML、JSON、XML を 1 つのツールで圧縮。言語を選んでコードを貼り付けると、削減されたバイト数が分かります。無料でブラウザ内で動作。

他のカテゴリを見る