[1] CSS 2.1 によれば、字句化の段階で空白とみなされるのは
U+0009 CHARACTER TABULATIONU+000A CARRIAGE RETURNU+000C FORM FEEDU+000D CARRIAGE RETURNU+0020 SPACE
です。も空白とみなします。
[3] WinIE 6 は >>1-2 の6文字に加え、
U+00A0,
U+2000,
U+2001,
U+2002,
U+2003,
U+2004,
U+2005,
U+2006,
U+2007,
U+2008,
U+2009,
U+200A,
U+200B,
U+3000,
U+FEFF
も空白とみなします。
[5] Opera 9 は >>1-2 に加えて
U+00A0,
U+1680,
U+180E,
U+180F,
U+2000,
U+2001,
U+2002,
U+2003,
U+2004,
U+2005,
U+2006,
U+2007,
U+2008,
U+2009,
U+200A,
U+2028,
U+2029,
U+202F,
U+205F,
U+3000
を空白とみなします。 WinIE と出入りがあるのに注意してください。
[6] 空白文字であっても、名前文字でもあることがあります。
例えば、子孫結合子のつもりで U+3000
だけを使うと、 WinIE でも Opera でも U+3000
は要素名の一部とみなされてしまいます。
ですが、 U+0020 の後ならば、
U+3000 は要素名とはみなされません。
WinIE は要素名と鍵語で違った字句化を行うようです。
red の直後にある U+3000
は無視してくれます。 Opera では U+3000
も鍵語の一部とみなすらしく、宣言自体が無視されます。
Firefox は U+3000 を空白とはみなさないのですが、
鍵語の後に1つ以上 U+3000 が続いていても、
ついていないものとみなされるようです。色名の場合は、
U+3000 も CSSOM に現れますが、
レンダリングへの影響としては無視されます (先の例は WinIE
同様赤字になります)。色名以外 (少なくても
float: right と
text-align: right) では CSSOM
には U+3000 を除去したものが現れ、
レンダリングへの影響としても無視されます (右寄せになります)。