-
Notifications
You must be signed in to change notification settings - Fork 4
/
865.txt
179 lines (142 loc) · 9.88 KB
/
865.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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
[5]
[CODE(CSS)@en[[[-moz-alt-content]]]]
([[名無しさん]] [sage])
[6]
[CITE@ja[プリント時にも役立っちゃうcontentプロパティさん|CSS HappyLife]] ([CODE[2007-05-11 20:06:40 +09:00]] 版) <http://css-happylife.com/log/css-template/000138.shtml>
([[名無しさん]] [WEAK[2007-05-11 11:08:15 +00:00]])
[7]
[CITE[HTML5 IRC logs: freenode / #whatwg / 20070624]] ([CODE[2007-06-25 08:45:09 +09:00]] 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20070624#l-292>
([[名無しさん]] [WEAK[2007-06-24 23:47:02 +00:00]])
[8]
[CITE@en[Bug 130689 - CSS 3 replaced content breaks some pages]] ([CODE[2007-10-21 15:00:17 +09:00]] 版) <http://bugs.kde.org/show_bug.cgi?id=130689>
([[名無しさん]])
[9]
[CITE@en[Bug 130689 - CSS 3 replaced content breaks some pages]] ([CODE[2007-10-21 15:00:17 +09:00]] 版) <http://bugs.kde.org/show_bug.cgi?id=130689>
([[名無しさん]])
[10]
[[Firefox]] 2 [[構文解析]]
- 基本的に [[CSS 2.1]] 通りのようです。
- [CODE(CSS)@en[[[none]]]]、[CODE(CSS)@en[[[-moz-alt-content]]]]
には未対応です。
- [CODE(CSS)@en[[[attr]]()]] の[[引数]]に [CODE(CSS)[[[|]]]]
を用いることで、[[名前空間]]を使うことができます ([[CSS 3]])。
([[名無しさん]])
[11]
[[Opera]] 9 [[構文解析]]
- 基本的に [[CSS 2.1]] 通りのようです。
- [CODE(CSS)@en[[[none]]]] には未対応です。
- [[名前空間]]には未対応です。
- [CODE(CSS)@en[[[counter]]()]] や [CODE(CSS)@en[[[counters]]()]]
の最後の[[引数]] ([CODE(CSS)@en[<'[[list-style-type]]'>]])
は、 [CODE(CSS)@en[[[IDENT]]]] でさえあれば何でもいいようです。
([[名無しさん]])
[12]
[[Firefox]] 2 [[直列化]]
- 他の[[特性]]でなされるような[[正規化]]
([[escape]] 除去など) が基本的に適用されます。
-- [[引数]]の区切りは [CODE(CSS)@en[[[,]]]] の後に
[CODE(charname)@en[[[SPACE]]]] になります。
- [CODE(CSS)@en[[[counters]]()]] の第2[[引数]]
([CODE(CSS)@en[<[[string]]>]]) は、なぜか
[CODE(CSS)@en[[[IDENT]]]] であるかのように
(つまり[[引用符]]なしで) [[直列化]]されます。
- [CODE(CSS)@en[[[counter]]()]] や
[CODE(CSS)@en[[[counters]]()]] の最後の[[引数]]
([CODE(CSS)@en[<'[[list-style-type]]'>]]) が省略されていると、
[[既定値]] [CODE(CSS)@en[[[decimal]]]] が補われます。
- [CODE(CSS)@en[[[attr]]()]] 内に [CODE(CSS)[[[|]]]] があって、
その前が[[空文字列]]の場合、 [CODE(CSS)[[[|]]]] は除去されます。
- [CODE(CSS)@en[[[attr]]()]] 内に非[[空]]の[[名前空間接頭辞]]がある場合、
なぜか代わりに[[整数]] ([[0]] 以上) が出てきます。
どうやら、[[名前空間URI]] によって定まる、
内部的に[[名前空間]]情報を保持している[[配列]]の[[索引]]か何かのようです。
- なお、 [CODE(CSS)@en[[[counter]]()]] や
[CODE(CSS)@en[[[counters]]()]] の第1[[引数]]の[[大文字]]・[[小文字]]は[[正規化]]されません。
([[名無しさん]])
[13]
>>12
- [[HTML]] [[文書]]の場合、 [CODE(CSS)@en[[[attr]]()]] の中の[[局所名]]は
([[名前空間]]に関わらず) [[Unicode]] [[小文字]]に[[正規化]]されます。
- [[XML]] [[文書]]の場合、そのままです。
([[名無しさん]])
[14]
[[Opera]] 9 [[直列化]]
- 他の[[特性]]でなされるような[[正規化]]
(例えば [[escape]] の除去や[[相対参照]]の[[解決]])
が基本的になされます。
- [CODE(CSS)@en[[[attr]]()]] の[[引数]]の特別な[[正規化]]はないようです。
- [CODE(CSS)@en[[[counter]]()]] や [CODE(CSS)@en[[[counters]]()]]
はおかしいです。
== 最初と最後の[[空白]]や[[注釈]]は除去します。
== [[escape]] はすべて除去 (表す[[文字]]に置換) します。
== [CODE(CSS)[[["]]]] を [CODE(CSS)[[[\]][["]]]] に置換します。
== 残った文字列を [CODE(CSS)[[["]]]] で括ります。
-- というわけで、途中の[[空白]]や[[注釈]]は除去されません。
[CODE(CSS)@en[[[STRING]]]] の[[引用符]]は統一されません。
[CODE(CSS)[[[\]]]] も [[escape]] されません。
なぜか全体が [CODE(CSS)[[["]]]] で囲まれます。
([[名無しさん]])
[15]
[CODE(DOMm)@en[[[getComputedStyle]]]] 確認用:
<http://suika.fam.cx/gate/2007/cssom/viewer?c=p.test%2C%20p.test%3A%3Aafter%20%7B%0D%0A%20%20content%3A%20attr(aa)%20%22aaaaaa%22%20counter(aaa%5C%22a)%3B%0D%0A%7D;h=%3Cp%3E%3Cbutton%20type%3Dbutton%20onclick%3D%22%0D%0A%20%20var%20el%20%3D%20document.getElementsByTagName%20('p')%5B1%5D%3B%0D%0A%20%20d%20%3D%20getComputedStyle%20(el%2C%20null)%3B%0D%0A%20%20w%20(d.content)%3B%0D%0A%22%3E%3Ccode%3EgetComputedStyle%3C%2Fcode%3E%3C%2Fbutton%3E%20%3Cbutton%20type%3Dbutton%20onclick%3D%22%0D%0A%20%20var%20el%20%3D%20document.getElementsByTagName%20('p')%5B1%5D%3B%0D%0A%20%20d%20%3D%20getComputedStyle%20(el%2C%20'after')%3B%0D%0A%20%20w%20(d.content)%3B%0D%0A%22%3E%3Ccode%3EgetComputedStyle%3C%2Fcode%3E%20(%3Ccode%3E%3A%3Aafter%3C%2Fcode%3E)%3C%2Fbutton%3E%3C%2Fp%3E%0D%0A%3Cp%20class%3Dtest%3Exxxxxxxxxxxxxxx;p=n;x=style-element;i=html-div>
([[名無しさん]])
[16]
[[Firefox]] 2 では [CODE(DOMm)@en[[[getComputedStyle]]]]
上の値は常に[[空文字列]]のようです。
([[名無しさん]])
[17]
[[Opera]] 9 では、明示的に指定されなかったり
[CODE(CSS)@en[[[normal]]]] が指定されたりした[[要素]]や[[擬似要素]]では
[CODE(CSS)@en[[[none]]]]
(この値を直接指定することはできませんが・・・)、
それ以外は[[指定値]]になるようです。
[[URI]] は[[構文解析]]時に既に[[絶対URI]]に[[解決]]されています。
[CODE(CSS)@en[[[attr]]()]] は [[CSS 2.1]] の記述とは異なり、
そのまま残ります。
;; [[CSS 2.1]] とは異なり、[[擬似要素]]でなくても
[CODE(CSS)@en[[[normal]]]] は [CODE(CSS)@en[[[none]]]]
に置き換えられます。また、 [[CSS 3]] に従い、
普通の[[要素]]でも [CODE(CSS)@en[[[normal]]]]
以外の値がそのまま残ります。
([[名無しさん]])
[18]
[CODE(CSS)@en[[[counter]]()]] や
[CODE(CSS)@en[[[attr]]()]] の[[引数]]に
[CODE(CSS)@en[[[inherit]]]] があるときにおかしなことにならないものかと一応調べてみましたが、
[[Firefox]] 2、[[Opera]] 9 のどちらでも、特に変わったことはない (仕様通りの) ようです。
;; <http://suika.fam.cx/gate/2007/cssom/viewer?c=p%20%7B%0A%20%20content%3A%20counter(inherit)%3B%0A%7D;h=%3Cp%3E%3Cbutton%20type%3Dbutton%20onclick%3D%22%0A%20%20var%20el%20%3D%20document.getElementsByTagName%20('p')%5B1%5D%3B%0A%20%20d%20%3D%20getComputedStyle%20(el%2C%20null)%3B%0A%20%20w%20(d.content)%3B%0A%22%3E%3Ccode%3EgetComputedStyle%3C%2Fcode%3E%3C%2Fbutton%3E%20%3Cbutton%20type%3Dbutton%20onclick%3D%22%0A%20%20var%20el%20%3D%20document.getElementsByTagName%20('p')%5B1%5D%3B%0A%20%20d%20%3D%20getComputedStyle%20(el%2C%20'after')%3B%0A%20%20w%20(d.content)%3B%0A%22%3E%3Ccode%3EgetComputedStyle%3C%2Fcode%3E%20(%3Ccode%3E%3A%3Aafter%3C%2Fcode%3E)%3C%2Fbutton%3E%3C%2Fp%3E%0A%3Cp%20class%3Dtest%3Exxxxxxxxxxxxxxx;p=n;x=style-element;i=html-div>
([[名無しさん]])
[20] [CITE[User Interface Enhancements]]
( ([TIME[1999-09-16 05:07:02 +09:00]] 版))
<http://www.w3.org/TR/1999/WD-css3-userint-19990916#propdef-content>
[21] [CITE@en[User Interface for CSS3]]
( ([TIME[2000-06-23 03:09:21 +09:00]] 版))
<http://www.w3.org/TR/2000/WD-css3-userint-20000216#content>
[22] [CITE@en[CSS3 module: Basic User Interface]]
( ([[Tantek Çelik]] 著, [TIME[2002-08-03 07:13:43 +09:00]] 版))
<http://www.w3.org/TR/2002/WD-css3-ui-20020802/#content>
[23] [CITE@en[CSS3 Basic User Interface Module]]
( ([[Tantek Çelik]] 著, [TIME[2004-05-12 02:17:47 +09:00]] 版))
<http://www.w3.org/TR/2004/CR-css3-ui-20040511/#content0>
[24] [CITE@en[CSS Basic User Interface Module Level 3 (CSS3 UI)]]
( ([[Tantek Çelik]] 著, [TIME[2011-09-29 17:32:08 +09:00]] 版))
<http://dev.w3.org/csswg/css3-ui/#content-property-addition>
[25] [CITE@en[CSS3 Generated and Replaced Content Module]]
( ([TIME[2003-05-15 21:54:58 +09:00]] 版))
<http://www.w3.org/TR/2003/WD-css3-content-20030514/#content-insert>
[26] [CITE@en[CSS Generated Content Module Level 3]]
( ([TIME[2011-04-21 02:28:30 +09:00]] 版))
<http://dev.w3.org/csswg/css3-content/#inserting-and-replacing-content-with-the>
[27] [[Chrome]] でも [[Firefox]] でも、 [CODE(CSS)@en[[[counter()]]]]、 [CODE(CSS)@en[[[counters()]]]]
のいずれも [CODE(CSS)@en[[[list-style-type]]]] つきの形に正規化されます。 [TIME[2013-09-08T11:56:26.700Z]]
[28] [[Firefox]] ではもとの関数名が保持されますが、 [[Chrome]] では [CODE(CSS)@en[[[counters()]]]]
の第2引数が[[空文字列]]なら省略して [CODE(CSS)@en[[[counter()]]]] に正規化されます。 [TIME[2013-09-08T11:57:35.700Z]]
;; [32] >>28 の [[Chrome]] の動作は意味が変わってますが・・・。
[29] [[Chrome]] は正しく直列化できないことがあります。複数の値が指定されている時、[[空白]]だけでなく
[CODE(CSS)@en[,]] を含めてしまいます。また [CODE(CSS)@en[[[counters()]]]]
の第2引数を [[<string>]] ではなく [[<ident>]] にしてしまいます。どちらも再構文解析できなくなります。 [TIME[2013-09-08T11:58:38.700Z]]
[30] [[Chrome]] は [CODE(CSS)@en[[[attr()]]]] の名前空間接頭辞に対応していません。 [[null名前空間]]を表す
[CODE(CSS)[[[|]]]] がついているものも[[非妥当]]になります。 [TIME[2013-09-08T11:59:20.500Z]]
[31] [[Firefox]] は [CODE(CSS)@en[[[attr()]]]] の名前空間接頭辞に対応しているようで、 [[null名前空間]]を表す
[CODE(CSS)[[[|]]]] は省略した形に正規化し、それ以外は [CODE(CSS)[attr(\32 5\|a)]]
のようなおかしな形にします。 [TIME[2013-09-08T12:00:37.00Z]]