スタイルシート内でバックスラッシュの直後にある文字が無視される

症状

スタイルシート内で1バイト文字のバックスラッシュ(\)を用いると、その直後にある文字を無視する。このため、後に続くスタイル宣言が無視されてしまうことがある。

例示

スタイルシート内の指定(一部):

/* コメントA \*/
p#a {
  color: red;
}
/* コメントB */

HTML文書内の記述:

<p id="a">MacIE</p>

MacIE

コメントAの終端(*/)の直前にバックスラッシュを置いています。本来はid属性が 'a' のp要素の前景色が赤色になるはずです。

スクリーンショット

WinIE6WinIE6.0での表示(標準モード)

補足

例示では、バックスラッシュの直後にある「*」が無視され(その結果、コメント終端として認識されない)、次のコメント終端までをコメントとして扱ってしまうために、間にあるスタイル宣言が反映されません。これを利用することで、MacIEに特定のスタイルを適用させないようにすることもできるようです。

スタイルシートをシフトJISコードで記述している場合、第2バイトがバックスラッシュと同じ(0x5C)になっている文字が存在するため、バックスラッシュを記述していないのにバグが発生することがあります。以下の文字などが該当しますので注意してください。

― ソ Ы 噂 浬 欺 圭 構 蚕 十 申 曾 箪 貼 能 表 暴 予 禄 兔

修正状況

MacIE5で不具合が発生する模様。

スポンサーリンク

関連記事

スポンサーリンク

phpSQLiteAdmin

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る