1 |
wakaba |
1.1 |
|
2 |
|
|
[1] |
3 |
|
|
[CITE[4月の月例パッチ「MS06-013」適用で、キヤノンのプリンタ用ソフトに不具合]] <http://internet.watch.impress.co.jp/cda/news/2006/04/17/11678.html> |
4 |
|
|
([[名無しさん]] [WEAK[2006-04-17 22:23:46 +00:00]]) |
5 |
|
|
|
6 |
|
|
[2] |
7 |
|
|
<http://suika.fam.cx/~wakaba/-temp/test/dom/style-sheet/css-text/> |
8 |
|
|
の ie-crash-*.html。 |
9 |
|
|
|
10 |
|
|
[CODE(CSS)@en[[[cssText]]]] に代入する値が [[HTML]] |
11 |
|
|
[[要素]]の [[HTML DOM]] [[属性]]に由来する値だと |
12 |
|
|
[[WinIE 6]] ([[Windows XP]] [[SP2]]) がクラッシュします。 |
13 |
|
|
|
14 |
|
|
;; [CODE(HTMLe)@en[[[body]]]] とか [CODE(HTMLe)@en[[[p]]]] |
15 |
|
|
とか [CODE(HTMLe)@en[[[textarea]]]] とか、おそらく[[要素型]]は任意。 |
16 |
|
|
そして [CODE(HTMLe)@en[[[text]]]] とか [CODE(HTMLe)@en[[[background]]]] とか [CODE(HTMLe)@en[[[className]]]] とか |
17 |
|
|
[CODE(HTMLe)@em[[[accessKey]]]] とか |
18 |
|
|
[CODE(HTMLe)@en[[[value]]]] とか |
19 |
|
|
[CODE(HTMLe)@en[[[defaultValue]]]] とか |
20 |
|
|
[CODE(HTMLe)@en[[[name]]]] とか |
21 |
|
|
[[HTML DOM]] の任意の[[属性]]でおk。 |
22 |
|
|
でも [CODE(HTMLe)@en[[[nodeName]]]] |
23 |
|
|
とか [CODE(HTMLe)@en[[[nodeValue]]]] |
24 |
|
|
とか [CODE(HTMLe)@en[[[nodeType]]]] とかだと無問題。 |
25 |
|
|
|
26 |
|
|
([[名無しさん]] [WEAK[2007-05-10 13:57:17 +00:00]]) |
27 |
|
|
|
28 |
|
|
[3] |
29 |
|
|
[CITE[IT戦記 - style.cssText の使い処に関する考察]] ([CODE[2007-08-18 12:50:19 +09:00]] 版) <http://d.hatena.ne.jp/amachang/20070730/1185788557> |
30 |
|
|
([[名無しさん]]) |
31 |
|
|
|
32 |
|
|
[4] |
33 |
|
|
[CODE(DOMi)@en[[[CSSCharsetRule]]]] の [CODE(DOMa)@en[[[cssText]]]] |
34 |
|
|
で得られる値 ([[Firefox]] 2、[[Opera]] 9): |
35 |
|
|
= [CODE(CSS)@en[@[[charset]] "]] |
36 |
|
|
= [CODE(DOMa)@en[[[encoding]]]] [[属性]]の値 |
37 |
|
|
-- [[構文解析]]時に[[大文字]]・[[小文字]]の[[正規化]]などはなされません。 |
38 |
|
|
-- [[構文解析]]時に [CODE(charname)@en[[[NULL]]]] |
39 |
|
|
(と [[Opera]] 9 ではそれ以降の[[文字列]]) は除去されます。 |
40 |
|
|
= [CODE(CSS)@en[";]] |
41 |
|
|
|
42 |
|
|
[CODE(DOMa)@en[[[encoding]]]] に [CODE(CSS)[[["]]]] や |
43 |
|
|
[CODE(CSS)[[[\]]]] が含まれていてもお構いなしです。 |
44 |
|
|
|
45 |
|
|
([[名無しさん]]) |
46 |
|
|
|
47 |
|
|
[5] |
48 |
|
|
[CODE(CSS)@en[@[[namespace]]]] の [CODE(DOMa)@en[[[cssText]]]] で得られている値 ([[Firefox]] 2): |
49 |
|
|
= [CODE(CSS)@en[@[[namespace]] ]] (最後の1文字は |
50 |
|
|
[CODE(charname)@en[[[SPACE]]]]。) |
51 |
|
|
= もし[[名前空間接頭辞]]が指定されていれば、 |
52 |
|
|
それ、そのあとに [CODE(charname)@en[[[SPACE]]]] を1つ |
53 |
|
|
== [[構文解析]]時に [CODE(charname)@en[[[NULL]]]] (ry |
54 |
|
|
== 更に、[[構文解析]]時に[[小文字]]に[[正規化]]されています。 |
55 |
|
|
= [CODE(CSS)@en[[[url]](]] |
56 |
|
|
= [[名前空間URI]] |
57 |
|
|
== [[構文解析]]時に [CODE(charname)@en[[[NULL]]]] (ry |
58 |
|
|
= [CODE(CSS)@en[);]] |
59 |
|
|
|
60 |
|
|
[[名前空間接頭辞]]や[[名前空間URI]]にどんな[[文字]]が入っていようとお構いなしです。 |
61 |
|
|
|
62 |
|
|
([[名無しさん]]) |
63 |
|
|
|
64 |
|
|
[6] |
65 |
|
|
[CODE(DOMi)@en[[[CSSStyleDeclaration]]]] の [CODE(DOMa)@en[[[cssText]]]] |
66 |
|
|
で得られる値 |
67 |
|
|
= 存在する[[特性]]ごとに: |
68 |
|
|
== [[特性名]] |
69 |
|
|
--- [[WinIE 6]] では、既知の[[特性]]については[[大文字]][[正規形]]、 |
70 |
|
|
未知の[[特性]]は元のまま、[[Firefox]] 2 と [[Opera]] 9 では、 |
71 |
|
|
[[小文字]][[正規形]] |
72 |
|
|
== [CODE(CSS)[[[:]]]] |
73 |
|
|
== [CODE(charname)@en[[[SPACE]]]] |
74 |
|
|
== [[特性値]] (対応する [[DOM属性]]や |
75 |
|
|
[CODE(DOMm)@en[[[getPropertyValue]]]] で得られる値) |
76 |
|
|
--- [[WinIE 6]] で未知の[[特性]]では、 |
77 |
|
|
[CODE(CSS)[[[:]]]] の後 [CODE(CSS)[[[!]]]] や [CODE(CSS)[[[;]]]] |
78 |
|
|
や [CODE(CSS)[[[;]]]] の前まで、先頭と末尾の[[空白]]なし、 |
79 |
|
|
[[注釈]]なし |
80 |
|
|
== [CODE(DOMm)@en[[[getPropertyPriority]]]] が |
81 |
|
|
[CODE(CSS)@en[[[important]]]] なら、[[Firefox]] 2 のみ: |
82 |
|
|
=== [CODE(charname)@en[[[SPACE]]]] |
83 |
|
|
=== [CODE(CSS)[[[!]]]] |
84 |
|
|
=== [CODE(charname)@en[[[SPACE]]]] |
85 |
|
|
=== [CODE(CSS)@en[[[important]]]] |
86 |
|
|
== ([[Opera]] 9 または [[WinIE 6]]) 次の[[特性]]があれば、 |
87 |
|
|
または ([[Firefox]] 2) 必ず: |
88 |
|
|
=== [CODE(CSS)[[[;]]]] |
89 |
|
|
=== 次の[[特性]]があれば、 [CODE(charname)@en[[[SPACE]]]] |
90 |
|
|
-- [[WinIE 6]] では、未知の[[特性]]の[[宣言]]でも対応する [[CSSOM]] |
91 |
|
|
[[属性]]が作られるので、それが [CODE(DOMa)@en[[[cssText]]]] |
92 |
|
|
にも反映される |
93 |
|
|
-- [[Opera]] 9 では、重複する[[特性]]の[[宣言]]でも対応する [[CSSOM]] |
94 |
|
|
内の値が用意されるので、それが [CODE(DOMa)@en[[[cssText]]]] |
95 |
|
|
にも反映される |
96 |
|
|
- [[Firefox]] 2 と [[Opera]] 9 では、基本的に元の順序が保存される |
97 |
|
|
([[Firefox]] 2 では [[shorthand]] にまとめられる場合もあり、 |
98 |
|
|
その場合は最初の [[longhand]] の場所にまとめられる、 |
99 |
|
|
[[shorthand]] の項を参照) |
100 |
|
|
- [[WinIE 6]] では既知の[[特性]]のあと未知の[[特性]]となる、 |
101 |
|
|
既知・未知それぞれの中の順序は不明 (既知の順序は決まっているのかもしれないが、意味のある順序には見えない、 |
102 |
|
|
未知の順序は [[JavaScript]] の[[列挙]]の順序か?) |
103 |
|
|
|
104 |
|
|
([[名無しさん]]) |
105 |
|
|
|
106 |
|
|
[7] |
107 |
|
|
[CODE(DOMi)@en[[[CSSStyleRule]]]] の [CODE(DOMa)@en[[[cssText]]]] |
108 |
|
|
で得られる値: |
109 |
|
|
= [CODE(DOMa)@en[[[selectorText]]]] |
110 |
|
|
= [CODE(charname)@en[[[SPACE]]]] |
111 |
|
|
= [CODE(CSS)[[[{]]]] |
112 |
|
|
= [[WinIE 6]] では、[[改行]] |
113 |
|
|
= [[WinIE 6]] では、[CODE(charname)@en[[[SPACE]]]] |
114 |
|
|
= [CODE(DOMa)@en[[[style]]]] の [CODE(DOMa)@en[[[cssText]]]] |
115 |
|
|
= [[WinIE 6]] では、[[改行]] |
116 |
|
|
= [CODE(CSS)[[[}]]]] |
117 |
|
|
|
118 |
|
|
[[Firefox]] 2 と [[Opera]] 9 の挙動は一致 (ただし |
119 |
|
|
[CODE(DOMa)@en[[[style]]]] の [CODE(DOMa)@en[[[cssText]]]] |
120 |
|
|
や [CODE(DOMa)@en[[[selectorText]]]] で違っている) |
121 |
|
|
|
122 |
|
|
([[名無しさん]]) |
123 |
|
|
|
124 |
|
|
[8] |
125 |
|
|
>>7 の [[WinIE 6]] は [CODE(DOMm)@en[[[CSSStyleSheet]]]] |
126 |
|
|
の [CODE(DOMa)@en[[[cssText]]]] のうち、 |
127 |
|
|
[CODE(DOMi)@en[[[CSSStyleRule]]]] 相当の部分。 |
128 |
|
|
|
129 |
|
|
;; [CODE(DOMi)@en[[[CSSStyleRule]]]] の |
130 |
|
|
[CODE(DOMa)@en[[[cssText]]]] はないみたい。 |
131 |
|
|
|
132 |
|
|
([[名無しさん]]) |
133 |
|
|
|
134 |
|
|
[9] |
135 |
|
|
>>8 で、最後に必ず[[改行]]。 |
136 |
|
|
([[名無しさん]]) |
137 |
|
|
|
138 |
|
|
[10] |
139 |
|
|
>>8 で、最後に必ず[[改行]]。 |
140 |
|
|
([[名無しさん]]) |
141 |
|
|
|
142 |
|
|
[11] |
143 |
|
|
[[WinIE 6]] の [CODE(DOMi)@en[[[CSSStyleSheet]]]] の |
144 |
|
|
[CODE(DOMa)@en[[[cssText]]]]: |
145 |
|
|
= [CODE(DOMi)@en[[[CSSImportRule]]]] の [CODE(DOMa)@en[[[cssText]]]] |
146 |
|
|
相当 |
147 |
|
|
= [CODE(DOMi)@en[[[CSSFontFaceRule]]]] の [CODE(DOMa)@en[[[cssText]]]] 相当 |
148 |
|
|
= [CODE(DOMi)@en[[[CSSPageRule]]]] の [CODE(DOMa)@en[[[cssText]]]] |
149 |
|
|
相当 |
150 |
|
|
= [CODE(DOMi)@en[[[CSSStyleRule]]]] の [CODE(DOMa)@en[[[cssText]]]] |
151 |
|
|
相当 |
152 |
|
|
|
153 |
|
|
各 [CODE(DOMi)@en[[[CSSRule]]]] 相当の [CODE(DOMa)@en[[[cssText]]]] |
154 |
|
|
の連結です。各 [CODE(DOMi)@en[[[CSSRule]]]] 部は必ず[[改行]]で終わっています。 |
155 |
|
|
|
156 |
|
|
元の [[CSS]] の記述の順序に関わらず、種類毎に分けてでてきます。 |
157 |
|
|
種類内の順序は保存されます。 [CODE(CSS)@en[@[[media]]]] |
158 |
|
|
内では[[規則集合]]、[CODE(CSS)@en[@[[import]]]]、 |
159 |
|
|
[CODE(CSS)@en[@[[page]]]]、[CODE(CSS)@en[@[[font-face]]]]、 |
160 |
|
|
[CODE(CSS)@en[@[[media]]]] が使えますが、 |
161 |
|
|
[[規則集合]]以外では[[媒体型]]の情報は保持されません。 |
162 |
|
|
[CODE(CSS)@en[@[[media]]]] に相当する [[CSSOM]] |
163 |
|
|
上の[[物体]]はなく、[[規則集合]]はそれぞれ[[媒体型]]の情報を保持しているようです。 |
164 |
|
|
|
165 |
|
|
([[名無しさん]]) |
166 |
|
|
|
167 |
|
|
[12] |
168 |
|
|
[[媒体型]]は [[titlecase]] [[正規形]]で、最長で |
169 |
|
|
[CODE(CSS)[Print, Screen, Tv, Unknown, Aural, Braille, Embossed, Handheld, Projection, Tty]] |
170 |
|
|
になります。これに含まれない値が元々指定されていたら |
171 |
|
|
[CODE(CSS)[Unknown]] になります。 |
172 |
|
|
[CODE(CSS)[Print, Screen, Tv, Aural, Braille, Embossed, Handheld, Projection, Tty]] |
173 |
|
|
は [CODE(DOMa)@en[[[cssText]]]] 時に [CODE(CSS)[All]] に置き換えられます |
174 |
|
|
(逆に言えば、[[構文解析]]時に逆方向に展開しているのでしょう)。 |
175 |
|
|
|
176 |
|
|
[[入れ子]]の [CODE(CSS)@en[@[[media]]]] は展開・変換後の[[集合]]に対して[[論理積]]をとっているようです。 |
177 |
|
|
[[空集合]]になると [CODE(CSS)@en[Unknown]] になっているようです。 |
178 |
|
|
([[名無しさん]]) |
179 |
|
|
|
180 |
|
|
[13] |
181 |
|
|
[[規則集合]]に[[媒体型]]が指定されている場合、 |
182 |
|
|
[CODE(DOMa)@en[[[cssText]]]] の[[規則集合]]部分はこうなります: |
183 |
|
|
= [[改行]] |
184 |
|
|
= [CODE(CSS)@en[@[[media]]]] |
185 |
|
|
= [CODE(charname)@en[[[SPACE]]]] |
186 |
|
|
= [[媒体型]]名の[[並び]]の[[正規形]] (>>12) |
187 |
|
|
= [CODE(charname)@en[[[SPACE]]]] ×4 |
188 |
|
|
= [[改行]] |
189 |
|
|
= [CODE(CSS)[[[{]]]] |
190 |
|
|
= [[改行]] |
191 |
|
|
= [[規則集合]]の [CODE(DOMa)@en[[[cssText]]]] 相当 (>>7-9) |
192 |
|
|
= [[改行]] (↑の末尾も[[改行]]なので、[[空行]]になる) |
193 |
|
|
= [CODE(CSS)[[[}]]]] |
194 |
|
|
= [[改行]] |
195 |
|
|
|
196 |
|
|
([[名無しさん]]) |
197 |
|
|
|
198 |
|
|
[14] |
199 |
|
|
>>13 [[媒体型]]名の[[並び]]の[[正規形]]がまったく同じ[[規則集合]]が連続する場合、 >>13 の9番の部分に[[規則集合]]が複数入ります。 |
200 |
|
|
([[名無しさん]]) |
201 |
|
|
|
202 |
|
|
|
203 |
|
|
[15] |
204 |
|
|
その他の[[@規則]]の [CODE(DOMa)@en[[[cssText]]]] 相当の例:
|
205 |
|
|
[PRE(CSS example code)[
|
206 |
|
|
@import url( style );
|
207 |
|
|
@import url( style );
|
208 |
|
|
@import url( a );
|
209 |
|
|
@import url( stylea );
|
210 |
|
|
@font-face {
|
211 |
|
|
font-family: ;
|
212 |
|
|
}
|
213 |
|
|
@font-face {
|
214 |
|
|
font-family: a;
|
215 |
|
|
}
|
216 |
|
|
@font-face {
|
217 |
|
|
font-family: ;
|
218 |
|
|
}
|
219 |
|
|
@page xXXxxx {}
|
220 |
|
|
@page a:lEft {}
|
221 |
|
|
@page aa {}
|
222 |
|
|
@page :lEft {margin: 1em 2px; }
|
223 |
|
|
]PRE]
|
224 |
|
|
|
225 |
|
|
([[名無しさん]]) |
226 |
|
|
|