contentプロパティに指定した日本語文字が文字化けして表示される
症状
外部スタイルシートでcontentプロパティの値に日本語などの多バイト文字を指定すると文字化けして表示される。
例示
外部スタイルシート「b001.css」:
@charset "Shift_JIS"; div.sample1:before { content: "日本語"; color: red; }
このHTML文書:
<div class="sample1">←content</div>
←content
矢印の前に前景色が赤色の文字列「日本語」が表示されるはずです。
スクリーンショット
N7.02での表示
補足
外部スタイルシート内でバックスラッシュを用いたエスケープを行えば文字化けしません。
@charset "Shift_JIS"; div.sample2:before { content: "\65E5 \672C \8A9E"; color: red; }
<div class="sample2">←content</div>
←content
または、外部スタイルシートの文字コードをUCS-2にすることでも文字化けを回避できるそうです。しかし、それ以外の文字コードを使用した場合は@charsetを明示したとしてもエスケープが必要になります。
修正状況
Safari1.0でこの不具合が発生するそうです。
関連記事
- :hover擬似クラスでvertical-alignが無効
- 固定レイアウトテーブルでセル幅の%値指定時に算出値が不正確
- caption要素を含むテーブルではcol/colgroupに対するスタイルが効かない
- 空白文字のみのテキストノードを正常に取得できない
- document.styleSheets[n].titleが常にnull値を返す
- clearプロパティはnone以外の値からnone値に上書きできない
- 名称に日本語文字を含むフォントファミリの指定を無視する
- contentプロパティでopen-quote, close-quote値を無視する
スポンサーリンク