366

私は問題があります。下向き矢印のHTMLコードを見つけました↓(↓)

涼しい。今、私はそれをCSSで次のように使用する必要があります:

nav a:hover {content:"&darr";}

↓HTMLシンボルであるため、これは明らかに機能しません。cssで使用されるこれらの「エスケープされたユニコード」シンボルに関する情報は少ないようです。私が見つけたような他のシンボルがあります\2020が、矢印はありません。矢印コードとは何ですか?

4

1 に答える 1

567

CSSファイルをUTF-8として保存/提供してみませんか?

nav a:hover:after {
    content: "↓";
}

それだけでは不十分で、すべてを保持したい場合-ASCII:

nav a:hover:after {
    content: "\2193";
}

文字列内のUnicode文字の一般的な形式は\000000\FFFFFFバックスラッシュとそれに続く6桁の16進数です。0Unicode文字が文字列の最後の文字である場合、またはUnicode文字の後にスペースを追加する場合は、先頭の数字を省略できます。詳細については、以下の仕様を参照してください。


CSS2仕様の関連部分

第3に、バックスラッシュエスケープを使用すると、作成者はドキュメントに簡単に挿入できない文字を参照できます。この場合、円記号の後には最大6桁の16進数(0..9A..F)が続きます。これは、その番号を持つISO 10646([ISO10646])文字を表します。これはゼロであってはなりません。(CSS 2.1では、スタイルシートにUnicodeコードポイントがゼロの文字が含まれている場合にどうなるかは定義されていません。)[0-9a-fA-F]の範囲の文字が16進数の後に続く場合、番号の末尾は次のようになります。明確にする。これを行うには2つの方法があります。

  1. スペース(または他の空白文字): "\ 26 B"( "&B")。この場合、ユーザーエージェントは、「CR / LF」ペア(U + 000D / U + 000A)を単一の空白文字として扱う必要があります。
  2. 正確に6桁の16進数を指定する: "\ 000026B"( "&B")

実際、これら2つの方法を組み合わせることができます。16進エスケープの後、1つの空白文字のみが無視されます。これは、エスケープシーケンスの後の「実際の」スペースを2倍にする必要があることを意味することに注意してください。

数値がUnicodeで許可されている範囲外の場合(たとえば、「\ 110000」が現在のUnicodeで許可されている最大10FFFFを超えている場合)、UAはエスケープを「置換文字」(U + FFFD)に置き換えることができます。文字を表示する場合、UAは、「欠落している文字」のグリフなどの表示可能な記号を表示する必要があります(15.2、ポイント5を参照)。

  • 注:円記号のエスケープは、常に識別子または文字列の一部と見なされます(つまり、「{」は句読点ではありませんが、「\ 7B」は句読点ではなく、クラス名の先頭に「\32」を使用できます。 「2」はそうではありませんが)。
    識別子「te\st」は「test」とまったく同じ識別子です。

包括的なリスト:Unicode文字'下向き矢印'(U + 2193)

于 2012-05-01T04:21:41.627 に答える