/
29.txt
95 lines (81 loc) · 4 KB
/
29.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[1] [[CSS 2.1]] によれば、[[字句化]]の段階で[[空白]]とみなされるのは
- [CODE(char)[[[U+0009]]]] [CODE(charname)@en[[[CHARACTER TABULATION]]]]
- [CODE(char)[[[U+000A]]]] [CODE(charname)@en[[[CARRIAGE RETURN]]]]
- [CODE(char)[[[U+000C]]]] [CODE(charname)@en[[[FORM FEED]]]]
- [CODE(char)[[[U+000D]]]] [CODE(charname)@en[[[CARRIAGE RETURN]]]]
- [CODE(char)[[[U+0020]]]] [CODE(charname)@en[[[SPACE]]]]
です。
;; <IW:CSS2:"syndata.html#tokenization">
[2] [[Firefox]] 2 は >>1 の5[[文字]]に加え、
- [CODE(char)[[[U+000B]]]] [CODE(charname)@en[[[LINE TABULATION]]]]
も[[空白]]とみなします。
[3] [[WinIE 6]] は >>1-2 の6[[文字]]に加え、
[CODE(char)@en[[[U+00A0]]]],
[CODE(char)@en[[[U+2000]]]],
[CODE(char)@en[[[U+2001]]]],
[CODE(char)@en[[[U+2002]]]],
[CODE(char)@en[[[U+2003]]]],
[CODE(char)@en[[[U+2004]]]],
[CODE(char)@en[[[U+2005]]]],
[CODE(char)@en[[[U+2006]]]],
[CODE(char)@en[[[U+2007]]]],
[CODE(char)@en[[[U+2008]]]],
[CODE(char)@en[[[U+2009]]]],
[CODE(char)@en[[[U+200A]]]],
[CODE(char)@en[[[U+200B]]]],
[CODE(char)@en[[[U+3000]]]],
[CODE(char)@en[[[U+FEFF]]]]
も[[空白]]とみなします。
[5] [[Opera]] 9 は >>1-2 に加えて
[CODE(char)@en[[[U+00A0]]]],
[CODE(char)@en[[[U+1680]]]],
[CODE(char)@en[[[U+180E]]]],
[CODE(char)@en[[[U+180F]]]],
[CODE(char)@en[[[U+2000]]]],
[CODE(char)@en[[[U+2001]]]],
[CODE(char)@en[[[U+2002]]]],
[CODE(char)@en[[[U+2003]]]],
[CODE(char)@en[[[U+2004]]]],
[CODE(char)@en[[[U+2005]]]],
[CODE(char)@en[[[U+2006]]]],
[CODE(char)@en[[[U+2007]]]],
[CODE(char)@en[[[U+2008]]]],
[CODE(char)@en[[[U+2009]]]],
[CODE(char)@en[[[U+200A]]]],
[CODE(char)@en[[[U+2028]]]],
[CODE(char)@en[[[U+2029]]]],
[CODE(char)@en[[[U+202F]]]],
[CODE(char)@en[[[U+205F]]]],
[CODE(char)@en[[[U+3000]]]]
を[[空白]]とみなします。 [[WinIE]] と出入りがあるのに注意してください。
;;
[4]
参考:
<http://suika.fam.cx/~wakaba/-temp/test/css/tokenize/whitespace/space-char-1>
(IE 用)、
<http://suika.fam.cx/~wakaba/-temp/test/css/tokenize/whitespace/space-char-2>
(その他用)
[6] [[空白]][[文字]]であっても、[[名前文字]]でもあることがあります。
例えば、[[子孫]][[結合子]]のつもりで [CODE(char)[[[U+3000]]]]
だけを使うと、 [[WinIE]] でも [[Opera]] でも [CODE(char)[[[U+3000]]]]
は[[要素名]]の一部とみなされてしまいます。
;;
<http://suika.fam.cx/gate/2007/cssom/viewer?c=div%E3%80%80p%20%7Bcolor%3Ared%7D;h=AAA%3Cdiv%3EBBB%3Cp%3ECCC%3C%2Fp%3E%3C%2Fdiv%3E;p=q>
ですが、 [CODE(char)[[[U+0020]]]] の後ならば、
[CODE(char)[[[U+3000]]]] は[[要素名]]とはみなされません。
;; <http://suika.fam.cx/gate/2007/cssom/viewer?c=div%20%E3%80%80p%20%7Bcolor%3Ared%7D;h=AAA%3Cdiv%3EBBB%3Cp%3ECCC%3C%2Fp%3E%3C%2Fdiv%3E;p=q>
[[WinIE]] は[[要素名]]と[[鍵語]]で違った[[字句化]]を行うようです。
[CODE(CSS)@en[[[red]]]] の直後にある [CODE(char)[[[U+3000]]]]
は無視してくれます。 [[Opera]] では [CODE(char)[[[U+3000]]]]
も[[鍵語]]の一部とみなすらしく、[[宣言]]自体が無視されます。
;; <http://suika.fam.cx/gate/2007/cssom/viewer?c=div%20p%20%7Bcolor%3Ared%E3%80%80%7D;h=AAA%3Cdiv%3EBBB%3Cp%3ECCC%3C%2Fp%3E%3C%2Fdiv%3E;p=q>
[[Firefox]] は [CODE(char)[[[U+3000]]]] を[[空白]]とはみなさないのですが、
[[鍵語]]の後に1つ以上 [CODE(char)[[[U+3000]]]] が続いていても、
ついていないものとみなされるようです。[[色名]]の場合は、
[CODE(char)[[[U+3000]]]] も [[CSSOM]] に現れますが、
[[レンダリング]]への影響としては無視されます (先の例は [[WinIE]]
同様[[赤]]字になります)。[[色名]]以外 (少なくても
[CODE(CSS)@en[[[float]]: [[right]]]] と
[CODE(CSS)@en[[[text-align]]: [[right]]]]) では [[CSSOM]]
には [CODE(char)[[[U+3000]]]] を除去したものが現れ、
[[レンダリング]]への影響としても無視されます ([[右寄せ]]になります)。