/[pub]/suikawiki/sw4data/ids/2/823.txt
Suika

Contents of /suikawiki/sw4data/ids/2/823.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (show annotations) (download)
Wed Sep 11 14:31:08 2013 UTC (11 years, 2 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
Changes since 1.3: +4 -1 lines
File MIME type: text/plain
updated by (anon)

1 * 仕様書
2
3 [REFS[
4 - [18] '''[CITE@en[CSS Positioned Layout Module Level 3]] ([TIME[2013-09-10 13:12:54 +09:00]] 版) <http://dev.w3.org/csswg/css-position/#clip-property>'''
5 - [19] [CITE@en-US[Quirks Mode Standard]] ([TIME[2013-06-27 10:39:37 +09:00]] 版) <http://quirks.spec.whatwg.org/#the-unitless-length-quirk>
6 ]REFS]
7
8 * 実装
9
10 [1]
11 [SAMP(CSS)[clip:rect(0%, 101%, 101%, 0%);]] [PP10]
12
13 [2] [CODE(DOMi)@en[Layer]].[CODE(DOMa)@en[[[clip]]]]
14 ,[CODE(DOMa)@en[[[bottom]]]] ,[CODE(DOMi)@en[[[Layer]]]] ([[JavaScript 1.2]])
15 ,[CODE(DOMa)@en[[[height]]]] ,[CODE(DOMi)@en[[[Layer]]]] ([[JavaScript 1.2]])
16 ,[CODE(DOMa)@en[[[left]]]] ,[CODE(DOMi)@en[[[Layer]]]] ([[JavaScript 1.2]])
17 ,[CODE(DOMa)@en[[[right]]]] ,[CODE(DOMi)@en[[[Layer]]]] ([[JavaScript 1.2]])
18 ,[CODE(DOMa)@en[[[top]]]] ,[CODE(DOMi)@en[[[Layer]]]] ([[JavaScript 1.2]])
19 ,[CODE(DOMa)@en[[[width]]]] ,[CODE(DOMi)@en[[[Layer]]]] ([[JavaScript 1.2]])
20
21 [3]
22 [[WinIE 6]] [[構文解析]]:
23 = 零文字以上の[[空白]]を読み飛ばす。
24 = 次の[[字句]]が [CODE(CSS)@en[[[IDENT]]]] [CODE(CSS)@en[[[rect]]]]
25 でなければ、[[宣言]]全体を[[無視]]し、終わり。
26 == 他の[[特性]]同様、[[大文字]]や[[escape]]や[[注釈]]を途中で使えます。
27 = 零個以上の[[空白]]を読み飛ばす。
28 = 次の[[字句]]が [CODE(CSS)[(]] でなければ、[[宣言]]全体を[[無視]]し、
29 終わり。
30 == 例によって [CODE(CSS)[(]] は [CODE(CSS)[\(]] でもおk。
31 == 前後に[[注釈]]があってもおk。
32 = 零個以上の[[空白]]を読み飛ばす。
33 = 次の[[字句]]を [CODE(CSS)@en[<[[length]]>]]、
34 [CODE(CSS)@en[<[[percentage]]>]]、または
35 [CODE(CSS)@en['[[auto]]']] として解釈を試みる。
36 == 例によって、 [[CSS 2.1]] の定義ではなく、 [[WinIE]]
37 の解釈による。
38 == [[奇癖モード]]や [CODE(CSS)[[[0]]] の場合には]]
39 [CODE(CSS)@en[<[[number]]>]] の単位は [CODE(CSS)[[[px]]]]
40 であったかのように扱われる。
41 == 解釈可能であれば、4辺にその値を設定する。
42 == 解釈可能でなければ、[[宣言]]全体を[[無視]]し、終わり。
43 = 1個以上の[[空白]]を読み飛ばすことができれば:
44 == 次の[[字句]]を先程同様に解釈を試みる。
45 === 解釈可能であれば、左辺・右辺にその値を設定する。
46 == 1個以上の[[空白]]を読み飛ばすことができれば:
47 === 次の[[字句]]を先程同様に解釈を試みる。
48 ==== 解釈可能であれば、下辺にその値を設定する。
49 === 零個以上の[[空白]]を読み飛ばす。1個以上の[[空白]]を読み飛ばした場合:
50 ==== 次の[[字句]]を先程同様に解釈を試みる。
51 ===== 解釈可能であれば、
52 ====== 左辺にその値を設定する。
53 ====== 零個以上の[[空白]]を読み飛ばす。
54 ===== 解釈可能でなければ、
55 ====== 次の[[字句]]が [CODE(CSS)[[[)]]]] なら
56 ([CODE(CSS)[\)]] でもおk)、最後の段階へ。
57 ====== そうでなければ、[[宣言]]全体を[[無視]]し、終わり。
58 = [CODE(CSS)[[[)]]]] ([CODE(CSS)[\)]] でもk) がなければ、
59 [[宣言]]全体を[[無視]]し、終わり。
60 = 零個以上の[[空白]]を読み飛ばす。[[特性値]]の末尾でなければ、
61 [[宣言]]全体を[[無視]]する。終わり。
62
63 ([[名無しさん]])
64
65 [4]
66 [[WinIE 6]] [[構文解析]]:
67 = 零文字以上の[[空白]]を読み飛ばす。
68 = 次の[[字句]]が [CODE(CSS)@en[[[IDENT]]]] [CODE(CSS)@en[[[rect]]]]
69 でなければ、[[宣言]]全体を[[無視]]し、終わり。
70 == 他の[[特性]]同様、[[大文字]]や[[escape]]や[[注釈]]を途中で使えます。
71 = 零個以上の[[空白]]を読み飛ばす。
72 = 次の[[字句]]が [CODE(CSS)[(]] でなければ、[[宣言]]全体を[[無視]]し、
73 終わり。
74 == 例によって [CODE(CSS)[(]] は [CODE(CSS)[\(]] でもおk。
75 == 前後に[[注釈]]があってもおk。
76 = 零個以上の[[空白]]を読み飛ばす。
77 = 次の[[字句]]を [CODE(CSS)@en[<[[length]]>]]、
78 [CODE(CSS)@en[<[[percentage]]>]]、または
79 [CODE(CSS)@en['[[auto]]']] として解釈を試みる。
80 == 例によって、 [[CSS 2.1]] の定義ではなく、 [[WinIE]]
81 の解釈による。
82 == [[奇癖モード]]や [CODE(CSS)[[[0]]] の場合には]]
83 [CODE(CSS)@en[<[[number]]>]] の単位は [CODE(CSS)[[[px]]]]
84 であったかのように扱われる。
85 == 解釈可能であれば、4辺にその値を設定する。
86 == 解釈可能でなければ、[[宣言]]全体を[[無視]]し、終わり。
87 = 1個以上の[[空白]]を読み飛ばすことができれば:
88 == 次の[[字句]]を先程同様に解釈を試みる。
89 === 解釈可能であれば、左辺・右辺にその値を設定する。
90 == 1個以上の[[空白]]を読み飛ばすことができれば:
91 === 次の[[字句]]を先程同様に解釈を試みる。
92 ==== 解釈可能であれば、下辺にその値を設定する。
93 === 零個以上の[[空白]]を読み飛ばす。1個以上の[[空白]]を読み飛ばした場合:
94 ==== 次の[[字句]]を先程同様に解釈を試みる。
95 ===== 解釈可能であれば、
96 ====== 左辺にその値を設定する。
97 ====== 零個以上の[[空白]]を読み飛ばす。
98 ===== 解釈可能でなければ、
99 ====== 次の[[字句]]が [CODE(CSS)[[[)]]]] なら
100 ([CODE(CSS)[\)]] でもおk)、最後の段階へ。
101 ====== そうでなければ、[[宣言]]全体を[[無視]]し、終わり。
102 = [CODE(CSS)[[[)]]]] ([CODE(CSS)[\)]] でもk) がなければ、
103 [[宣言]]全体を[[無視]]し、終わり。
104 = 零個以上の[[空白]]を読み飛ばす。[[特性値]]の末尾でなければ、
105 [[宣言]]全体を[[無視]]する。終わり。
106
107 ([[名無しさん]])
108
109 [5]
110 テスト用
111 <http://suika.fam.cx/gate/2007/cssom/viewer?c=p%20%7B%0D%0A%20%20clip%3A%20rect(1px%2C%20auto%2C%20-3em%206.77pc)%3B%0D%0A%7D;h=%3Cbutton%20type%3Dbutton%20onclick%3D%22%0D%0A%20%20var%20el%20%3D%20document.getElementsByTagName%20('p')%5B0%5D%3B%0D%0A%20%20d%20%3D%20getComputedStyle%20(el%2C%20null)%3B%0D%0A%20%20w%20(d.clip)%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')%5B0%5D%3B%0D%0A%20%20d%20%3D%20el.currentStyle%3B%0D%0A%20%20w%20(d.clip)%3B%0D%0A%22%3E%3Ccode%3EcurrentStyle%3C%2Fcode%3E%3C%2Fbutton%3E%0D%0A%3Cp%3Exxxxxxxxxxxxxxx;p=n;x=style-element;i=html-div>
112 ([[名無しさん]])
113
114 [6]
115 [CODE(CSS)@en[[[rect]]()]] の[[引数]]に [CODE(CSS)@en[[[auto]]]] が指定されたときの[[算出値]]は
116 [[CSS 2.1]] の文面からは不明瞭です。
117 ([[名無しさん]])
118
119 [7]
120 [CODE(CSS)@en[<[[shape]]>]] の説明には算出の方法が載っていますが、
121 幅や高さの[[算出値]]がどうとかいうよくわからない定義になっています。
122 [[CSS 2.1]] でいうところの[[特性]]の[[算出値]]は
123 [CODE(CSS)@en[[[auto]]]] のような計算できない値だったりするので、
124 [[使用値]]のつもりで書いているのでしょうか。
125 ([[名無しさん]])
126
127 [8]
128 [[Firefox]] 2 [[構文解析]]:
129 - [[CSS 2.1]] 通り
130 - [CODE(CSS)@en[[[-moz-initial]]]] が使える
131 - [[引数]]の区切りには零個以上の[[空白]]、
132 高々1個の [CODE(CSS)@en[[[,]]]]、
133 零個以上の[[空白]]の列が使える
134
135 ([[名無しさん]])
136
137 [9]
138 [[Opera]] 9 [[構文解析]]:
139 >>8 と同じ ([CODE(CSS)@en[[[-moz-initial]]]] 以外)
140 ([[名無しさん]])
141
142 [10]
143 [[WinIE 6]] [[直列化]]:
144 他の[[特性]]と同じ感じで。
145 [[引数]]の[[区切り]]は1 [CODE(charname)@en[[[SPACE]]]]。
146 ([[名無しさん]])
147
148 [11]
149 [[Firefox]] 2 [[直列化]]: 他の[[特性]]と同じ感じで。
150 [CODE(CSS)@en[[[auto]]]] は
151 [CODE(CSS)@en[[[rect]]([[auto]], [[auto]], [[auto]], [[auto]])]]
152 に。
153 ([[名無しさん]])
154
155 [12]
156 [[Opera]] 9 [[直列化]]: 他の[[特性]]と同じ感じで。
157 ([[名無しさん]])
158
159 [13]
160 [[Opera]] 9 [[直列化]]: 他の[[特性]]と同じ感じで。
161 ([[名無しさん]])
162
163 [14]
164 [[Opera]] 9 [[直列化]]: 他の[[特性]]と同じ感じで。
165 ([[名無しさん]])
166
167 [15]
168 [[WinIE 6]] [CODE(DOMa)@en[[[currentStyle]]]]:
169 [CODE(DOMa)@en[[[clip]]]] は存在しない。
170 ([[名無しさん]])
171
172 [16]
173 [[Firefox]] 2 [CODE(DOMm)@en[[[getCurrentStyle]]]]:
174 元々 [CODE(CSS)@en[[[auto]]]] や
175 [CODE(CSS)@en[[[rect]]([[auto]], [[auto]], [[auto]], [[auto]])]]
176 だったものは [CODE(CSS)@en[[[auto]]]] に。
177 [CODE(CSS)@en[[[rect]]()]] の[[引数]]は、それぞれの[[算出値]]
178 ([CODE(CSS)@en[[[px]]]]) に
179 (ここでの [CODE(CSS)@en[[[auto]]]] の[[算出値]]は
180 [CODE(CSS)@en[[[auto]]]] のまま)。
181
182 ([[名無しさん]])
183
184
185 [17]
186 [[Opera]] 9 [CODE(DOMm)@en[[[getComputedStyle]]]]、
187 [CODE(DOMa)@en[[[currentStyle]]]]:
188 [CODE(CSS)@en[[[auto]]]] は
189 [CODE(CSS)@en[[[rect]]([[auto]], [[auto]], [[auto]], [[auto]])]]
190 と見なした上で、それぞれの[[引数]]について
191 - [CODE(DOMm)@en[[[getComputedStyle]]]] では[[算出値]]
192 ([CODE(CSS)@en[[[px]]]])、
193 [CODE(DOMa)@en[[[currentStyle]]]] では[[指定値]]
194 - ただし、 [CODE(CSS)@en[[[auto]]]] の場合は
195 [CODE(DOMm)@en[[[getComputedStyle]]]] では
196 [CODE(CSS)@en[0[[px]]]]、
197 [CODE(DOMa)@en[[[currentStyle]]]] では
198 [CODE(CSS)[[[0]]]]。
199
200 [20] [CODE(CSS)@en[[[rect()]]]] の中の区切りは [CODE(CSS)[[[,]]]] のほか [[<whitespace>]]
201 でも良いようですが、 [[CSS3]] でも [[Firefox]] でも [[Chrome]] でも混在は認められていません。 [TIME[2013-09-11T14:25:52.100Z]]
202
203 [21] [[Chrome]] でも [[Firefox]] でも、区切りがまったくなしでもいいようです。 [TIME[2013-09-11T14:26:09.000Z]]
204
205 [22] [[直列化]]のときに [[Firefox]] は [CODE(CSS)@en[[[,]]]] を補いますが [[Chrome]]
206 は元のままです。 [TIME[2013-09-11T14:31:06.0Z]]

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24