
[1]
[CODE(CSS)@en[[[counter-reset]]]] & [CODE(CSS)@en[[[counter-increment]]]]
テスト用
<http://suika.fam.cx/gate/2007/cssom/viewer?c=p%20%7B%0A%20%20counter-increment%3A%20a%20-moz-initial%20-4%20a%20a%207%20A%20a%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.counterIncrement)%3B%0A%22%3E%3Ccode%3EgetComputedStyle%3C%2Fcode%3E%20(%3Ccode%3EcounterIncrement%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%20null)%3B%0A%20%20w%20(d.counterReset)%3B%0A%22%3E%3Ccode%3EgetComputedStyle%3C%2Fcode%3E%20(%3Ccode%3EcounterReset%3C%2Fcode%3E)%3C%2Fbutton%3E%3C%2Fp%3E%0A%3Cp%20class%3Dtest%3Exxxxxxxxxxxxxxx;p=n;x=style-element;i=html-div>

([[名無しさん]])

[2]
[[Firefox]] 2 [[構文解析]]
- 原則的には [[CSS 2.1]] 通りのようです。
- 特別な値 [CODE(CSS)@en[[[-moz-initial]]]] を使えます。
- 1つ目の値が [CODE(CSS)@en[[[none]]]]、
[CODE(CSS)@en[[[inherit]]]]、
[CODE(CSS)@en[[[-moz-initial]]]] の場合、
2つ目以降の値が存在すると、[[宣言]]ごと[[無視]]します。
- 1つ目の値が違うなら、2つ目以降の値が上記の3つであっても構いません
([[計数子名]]である [CODE(CSS)@en[<[[identifier]]>]] とみなされます)。
- [CODE(CSS)@en[<[[integer]]>]] は[[小数部]]を含んではいけません
(含んでいると[[宣言]]ごと[[無視]]します)。

([[名無しさん]])

[3]
[[Opera]] 9 [[構文解析]]
- おおむね [[CSS 2.1]] 通りのようです。
- 1つ目やそれ以降の値が [CODE(CSS)@en[[[none]]]] や 
[CODE(CSS)@en[[[inherit]]]] でも、他に値があれば、
[[計数子名]]である [CODE(CSS)@en[<[[identifier]]>]]
とみなします。
- [CODE(CSS)@en[<[[integer]]>]] は[[数]]ならなんでも良いようです。
[[零]]の方向に[[切り捨て]]ます。
- [CODE(CSS)[[[-]]]] で始まる [CODE(CSS)[[[IDENT]]]]
の扱いが変です。
,元の [[CSS]]	,[[CSSOM]] 上の値
,[CODE(CSS)[a -b]]	,"[CODE(CSS)[\"a\"]]"
,[CODE(CSS)[a -b 4]]	,"[CODE(CSS)[\"a\" 4]]"
,[CODE(CSS)[a -b -c -d 4]]	,"[CODE(CSS)[\"a\" 4]]"
,[CODE(CSS)[a -/**/b 4]]	,"[CODE(CSS)[\"a\" 4]]"
,[CODE(CSS)[a 1 -b 4]]	,([[宣言]]ごと[[無視]])

;; 中途半端に[[数]]のようなものとして扱われている?

([[名無しさん]])

[4]
[[Firefox]] 2 [[直列化]]
- 他の[[特性]]でもなされるような[[正規化]]がなされます。
- [CODE(CSS)@en[<[[identifier]]>]] の[[大文字]]・[[小文字]]は保存されます。

([[名無しさん]])

[5]
[[Opera]] 9 [[直列化]]
- 他の[[特性]]でもなされるような[[正規化]]がなされます。
- [CODE(CSS)@en[<[[identifier]]>]] の[[大文字]]・[[小文字]]は保存されます。
- [CODE(CSS)@en[<[[identifier]]>]] はなぜか
[CODE(CSS)["]] で括られます。元々 [CODE(CSS)["]] が含まれていれば
[CODE(CSS)[\"]] となります。
- [CODE(CSS)@en[<[[identifier]]>]] の順序や重複も保存されます。
-- >>4 も同じ。

>>3 どうしても [CODE(CSS)[-]] ではじめたいときは
[CODE(CSS)[\-]] とすればおk。

([[名無しさん]])

[6]
[[Firefox]] 2 [CODE(DOMm)@en[[[getComputedStyle]]]]
- 基本的には[[指定値]]通りです。
- 省略されていた [CODE(CSS)@en[<[[integer]]>]] (0 or 1) が補われます。
([[名無しさん]])


[7]
[[Opera]] 9 [CODE(DOMm)@en[[[getComputedStyle]]]]、
[CODE(DOMa)@en[[[currentStyle]]]]
- [[指定値]]通りのようです。

[8] [CITE@en[CSS Generated Content Module Level 3]]
( ([TIME[2011-04-21 02:28:30 +09:00]] 版))
<http://dev.w3.org/csswg/css3-content/#counters>

[9] [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/#counters>

[10] [[Chrome]] では数値が指定されていなければ 0 or 1 が補われて[[直列化]]されます。
[[Firefox]] では省略されていればそのままになります。 [TIME[2013-09-10T13:53:01.400Z]]

[11] [[Chrome]] でも [[Firefox]] でも大文字・小文字は保持されます。 [TIME[2013-09-10T13:53:14.800Z]]

[12] [[Chrome]] でも [[Firefox]] でも最初の字句が [CODE(CSS)@en[[[none]]]]、
[CODE(CSS)@en[[[inherit]]]]、[CODE(CSS)@en[[[initial]]]] ([[Firefox]] は更に [CODE(CSS)@en[[[-moz-initial]]]])
のいずれかなら ([[ASCII大文字・小文字不区別]]) それ以後に別に字句があると[[非妥当]]になります。
しかし2つ目以降の字句がこれらならカウンター名とみなされます。 (この場合大文字・小文字が保持されます。) [TIME[2013-09-10T13:55:34.900Z]]

;; [15] どちらも [CODE(CSS)@en[[[default]]]] や [CODE(CSS)@en[[[unset]]]] は妥当な識別子とみなします。

[13] [[Chrome]] は任意の [CODE[[[<number>]]]] を受け付けるようですが[[直列化]]すると[[整数]]に丸められています。
[[Firefox]] は [CODE[[[<integer>]]]] しか受け付けないようです。 [TIME[2013-09-10T14:05:35.600Z]]

[14] [[Chrome]] でも [[Firefox]] でも、同じ識別子が複数回登場してもそのまま保持します。 [TIME[2013-09-10T14:08:18.400Z]]