HTMLのエンティティを追加するためにCSSのcontent
プロパティをどのように使用しますか?
このようなものを使用すると、中断しないスペースではなく
が画面に表示されるだけです。
.breadcrumbs a:before {
content: ' ';
}
あなたはエスケープされたユニコードを使わなければなりません:
好き
.breadcrumbs a:before {
content: '\0000a0';
}
詳細情報: http://www.evotech.net/blog/2007/04/named-html-entities-in-numeric-order/
CSSはHTMLではありません。
は、HTMLの名前付き 文字参照 です。 10進数の数字参照 
と同等です。 160は、 nicode (または CS-2 のNO-BREAK SPACE
文字の10進数code pointです。 HTML 4.01仕様 )。そのコードポイントの16進数表現はU + 00A0(160 = 10×161 + 0×16)。これはUnicode コードチャート および キャラクターデータベース にあります。
CSSでは、そのような文字に対してUnicodeエスケープシーケンスを使用する必要があります。これは、文字のコードポイントの16進値に基づいています。だからあなたは書く必要があります
.breadcrumbs a:before {
content: '\a0';
}
これは、エスケープシーケンスが文字列値の最後にある限り機能します。文字が続く場合、誤解を避けるための2つの方法があります。
a)(他の人が言及)エスケープシーケンスに正確に6桁の16進数を使用します。
.breadcrumbs a:before {
content: '\0000a0foo';
}
b)エスケープシーケンスの後に1つの空白(たとえば、スペース)文字を追加します。
.breadcrumbs a:before {
content: '\a0 foo';
}
(f
は16進数であるため、\a0f
はそれ以外の場合はGURMUKHI LETTER EE
を意味し、適切なフォントがある場合はmeanを意味します。)
区切りの空白は無視され、 foo
が表示されます。ここで表示されるスペースはNO-BREAK SPACE
文字です。
空白のアプローチ('\a0 foo'
)には、6桁のアプローチ('\0000a0foo'
)よりも次の利点があります。
したがって、エスケープ文字の後にスペースを表示するには、スタイルシートでtwoスペースを使用します–
.breadcrumbs a:before {
content: '\a0 foo';
}
–または明示的にする:
.breadcrumbs a:before {
content: '\a0\20 foo';
}
詳細については、 CSS 2.1、セクション「4.1.3文字と大文字小文字の区別」 を参照してください。
更新 :PointedEarsは、すべてのcss状況で
を正しく代用するのは、'\a0 '
は、スペースは16進文字列の終端文字であり、エスケープシーケンスによって吸収されることを意味します。彼はさらにこの{ 正式な説明 を指摘しました。これは私が以下に説明し修正した問題に対する良い解決策のように思えます。
あなたがする必要があるのは、エスケープされたユニコードを使うことです。 \00a0
はCSSでの
の完全な代役ではありません。だから試してみてください。
content:'>\a0 '; /* or */
content:'>\0000a0'; /* because you'll find: */
content:'No\a0 Break'; /* and */
content:'No\0000a0Break'; /* becomes No Break as opposed to below */
特に\0000a0
を
として使用する。あなたが試した場合、mathieuとmillikinが示唆しているように:
content:'No\00a0Break' /* becomes No਋reak */
Bを16進数のエスケープ文字に変換します。同じことが0-9a-fA-Fについても起こります。
CSSでは、HTMLエンティティの代わりにUnicodeエスケープシーケンスを使用する必要があります。これは文字の16進値に基づいています。
シンボルをその16進数に変換する最も簡単な方法は、▼(▾
)から\25BE
への変換のように、Microsoftの電卓を使用することです。
はい。プログラマーモードを有効にし、10進法をオンにして、9662
を入力してから、16進法に切り替えると、25BE
が表示されます。それから単に先頭にバックスラッシュ\
を追加してください。
改行なしのスペースには16進コードを使用してください。このようなもの:
.breadcrumbs a:before {
content: '>\00a0';
}
nbsp
- open CharMapを貼り付けて 文字160 を貼り付ける方法があります。ただし、この場合は、次のように、おそらくパディングでスペースを空けます。
.breadcrumbs a:before { content: '>'; padding-right: .5em; }
ただし、ブレッドクラムにdisplay:inline-block
などを設定する必要があるかもしれません。
例えば :
http://character-code.com/arrows-html-codes.php
例:あなたがあなたのキャラクターを選択したいのなら、私は "&#8620" "&#x21ac"を選択しました( _ hex _ valuesを使います)
.breadcrumbs a:before {
content: '\0021ac';
}
結果:↬
それでおしまい :)
私はこれがかなり古い投稿であることを知っています、しかし間隔がすべてあなたの後にあるならば、なぜ単純ではない:
.breadcrumbs a::before {
content: '>';
margin-left: 8px;
margin-right: 8px;
}
私は以前にこの方法を使ったことがあります。私のテストでは、それはサイドに ">"を付けて他の行に完璧にラップしています。