
[1]
[CITE[4月の月例パッチ「MS06-013」適用で、キヤノンのプリンタ用ソフトに不具合]] <http://internet.watch.impress.co.jp/cda/news/2006/04/17/11678.html>
([[名無しさん]] [WEAK[2006-04-17 22:23:46 +00:00]])

[2]
<http://suika.fam.cx/~wakaba/-temp/test/dom/style-sheet/css-text/>
の ie-crash-*.html。

[CODE(CSS)@en[[[cssText]]]] に代入する値が [[HTML]]
[[要素]]の [[HTML DOM]] [[属性]]に由来する値だと
[[WinIE 6]] ([[Windows XP]] [[SP2]]) がクラッシュします。

;; [CODE(HTMLe)@en[[[body]]]] とか [CODE(HTMLe)@en[[[p]]]]
とか [CODE(HTMLe)@en[[[textarea]]]] とか、おそらく[[要素型]]は任意。
そして [CODE(HTMLe)@en[[[text]]]] とか [CODE(HTMLe)@en[[[background]]]] とか [CODE(HTMLe)@en[[[className]]]] とか
[CODE(HTMLe)@em[[[accessKey]]]] とか
[CODE(HTMLe)@en[[[value]]]] とか
[CODE(HTMLe)@en[[[defaultValue]]]] とか
[CODE(HTMLe)@en[[[name]]]] とか
[[HTML DOM]] の任意の[[属性]]でおk。
でも [CODE(HTMLe)@en[[[nodeName]]]]
とか [CODE(HTMLe)@en[[[nodeValue]]]]
とか [CODE(HTMLe)@en[[[nodeType]]]] とかだと無問題。

([[名無しさん]] [WEAK[2007-05-10 13:57:17 +00:00]])

[3]
[CITE[IT戦記 - style.cssText の使い処に関する考察]] ([CODE[2007-08-18 12:50:19 +09:00]] 版) <http://d.hatena.ne.jp/amachang/20070730/1185788557>
([[名無しさん]])

[4]
[CODE(DOMi)@en[[[CSSCharsetRule]]]] の [CODE(DOMa)@en[[[cssText]]]] 
で得られる値 ([[Firefox]] 2、[[Opera]] 9):
= [CODE(CSS)@en[@[[charset]] "]]
= [CODE(DOMa)@en[[[encoding]]]] [[属性]]の値
-- [[構文解析]]時に[[大文字]]・[[小文字]]の[[正規化]]などはなされません。
-- [[構文解析]]時に [CODE(charname)@en[[[NULL]]]]
(と [[Opera]] 9 ではそれ以降の[[文字列]]) は除去されます。
= [CODE(CSS)@en[";]]

[CODE(DOMa)@en[[[encoding]]]] に [CODE(CSS)[[["]]]] や
[CODE(CSS)[[[\]]]] が含まれていてもお構いなしです。

([[名無しさん]])

[5]
[CODE(CSS)@en[@[[namespace]]]] の [CODE(DOMa)@en[[[cssText]]]] で得られている値 ([[Firefox]] 2):
= [CODE(CSS)@en[@[[namespace]] ]] (最後の1文字は 
[CODE(charname)@en[[[SPACE]]]]。)
= もし[[名前空間接頭辞]]が指定されていれば、
それ、そのあとに [CODE(charname)@en[[[SPACE]]]] を1つ
== [[構文解析]]時に [CODE(charname)@en[[[NULL]]]] (ry
== 更に、[[構文解析]]時に[[小文字]]に[[正規化]]されています。
= [CODE(CSS)@en[[[url]](]]
= [[名前空間URI]]
== [[構文解析]]時に [CODE(charname)@en[[[NULL]]]] (ry
= [CODE(CSS)@en[);]]

[[名前空間接頭辞]]や[[名前空間URI]]にどんな[[文字]]が入っていようとお構いなしです。

([[名無しさん]])

[6]
[CODE(DOMi)@en[[[CSSStyleDeclaration]]]] の [CODE(DOMa)@en[[[cssText]]]]
で得られる値
= 存在する[[特性]]ごとに:
== [[特性名]]
--- [[WinIE 6]] では、既知の[[特性]]については[[大文字]][[正規形]]、
未知の[[特性]]は元のまま、[[Firefox]] 2 と [[Opera]] 9 では、
[[小文字]][[正規形]]
== [CODE(CSS)[[[:]]]]
== [CODE(charname)@en[[[SPACE]]]]
== [[特性値]] (対応する [[DOM属性]]や 
[CODE(DOMm)@en[[[getPropertyValue]]]] で得られる値)
--- [[WinIE 6]] で未知の[[特性]]では、
[CODE(CSS)[[[:]]]] の後 [CODE(CSS)[[[!]]]] や [CODE(CSS)[[[;]]]]
や [CODE(CSS)[[[;]]]] の前まで、先頭と末尾の[[空白]]なし、
[[注釈]]なし
== [CODE(DOMm)@en[[[getPropertyPriority]]]] が
[CODE(CSS)@en[[[important]]]] なら、[[Firefox]] 2 のみ:
=== [CODE(charname)@en[[[SPACE]]]]
=== [CODE(CSS)[[[!]]]]
=== [CODE(charname)@en[[[SPACE]]]]
=== [CODE(CSS)@en[[[important]]]]
== ([[Opera]] 9 または [[WinIE 6]]) 次の[[特性]]があれば、
または ([[Firefox]] 2) 必ず:
=== [CODE(CSS)[[[;]]]]
=== 次の[[特性]]があれば、 [CODE(charname)@en[[[SPACE]]]]
-- [[WinIE 6]] では、未知の[[特性]]の[[宣言]]でも対応する [[CSSOM]]
[[属性]]が作られるので、それが [CODE(DOMa)@en[[[cssText]]]]
にも反映される
-- [[Opera]] 9 では、重複する[[特性]]の[[宣言]]でも対応する [[CSSOM]]
内の値が用意されるので、それが [CODE(DOMa)@en[[[cssText]]]]
にも反映される
- [[Firefox]] 2 と [[Opera]] 9 では、基本的に元の順序が保存される
([[Firefox]] 2 では [[shorthand]] にまとめられる場合もあり、
その場合は最初の [[longhand]] の場所にまとめられる、
[[shorthand]] の項を参照)
- [[WinIE 6]] では既知の[[特性]]のあと未知の[[特性]]となる、
既知・未知それぞれの中の順序は不明 (既知の順序は決まっているのかもしれないが、意味のある順序には見えない、
未知の順序は [[JavaScript]] の[[列挙]]の順序か?)

([[名無しさん]])

[7]
[CODE(DOMi)@en[[[CSSStyleRule]]]] の [CODE(DOMa)@en[[[cssText]]]]
で得られる値:
= [CODE(DOMa)@en[[[selectorText]]]]
= [CODE(charname)@en[[[SPACE]]]]
= [CODE(CSS)[[[{]]]]
= [[WinIE 6]] では、[[改行]]
= [[WinIE 6]] では、[CODE(charname)@en[[[SPACE]]]]
= [CODE(DOMa)@en[[[style]]]] の [CODE(DOMa)@en[[[cssText]]]]
= [[WinIE 6]] では、[[改行]]
= [CODE(CSS)[[[}]]]]

[[Firefox]] 2 と [[Opera]] 9 の挙動は一致 (ただし
[CODE(DOMa)@en[[[style]]]] の [CODE(DOMa)@en[[[cssText]]]]
や [CODE(DOMa)@en[[[selectorText]]]] で違っている)

([[名無しさん]])

[8]
>>7 の [[WinIE 6]] は [CODE(DOMm)@en[[[CSSStyleSheet]]]]
の [CODE(DOMa)@en[[[cssText]]]] のうち、
[CODE(DOMi)@en[[[CSSStyleRule]]]] 相当の部分。

;; [CODE(DOMi)@en[[[CSSStyleRule]]]] の
[CODE(DOMa)@en[[[cssText]]]] はないみたい。

([[名無しさん]])

[9]
>>8 で、最後に必ず[[改行]]。
([[名無しさん]])

[10]
>>8 で、最後に必ず[[改行]]。
([[名無しさん]])

[11]
[[WinIE 6]] の [CODE(DOMi)@en[[[CSSStyleSheet]]]] の
[CODE(DOMa)@en[[[cssText]]]]:
= [CODE(DOMi)@en[[[CSSImportRule]]]] の [CODE(DOMa)@en[[[cssText]]]]
相当
= [CODE(DOMi)@en[[[CSSFontFaceRule]]]] の [CODE(DOMa)@en[[[cssText]]]] 相当
= [CODE(DOMi)@en[[[CSSPageRule]]]] の [CODE(DOMa)@en[[[cssText]]]]
相当
= [CODE(DOMi)@en[[[CSSStyleRule]]]] の [CODE(DOMa)@en[[[cssText]]]]
相当

各 [CODE(DOMi)@en[[[CSSRule]]]] 相当の [CODE(DOMa)@en[[[cssText]]]]
の連結です。各 [CODE(DOMi)@en[[[CSSRule]]]] 部は必ず[[改行]]で終わっています。

元の [[CSS]] の記述の順序に関わらず、種類毎に分けてでてきます。
種類内の順序は保存されます。 [CODE(CSS)@en[@[[media]]]]
内では[[規則集合]]、[CODE(CSS)@en[@[[import]]]]、
[CODE(CSS)@en[@[[page]]]]、[CODE(CSS)@en[@[[font-face]]]]、
[CODE(CSS)@en[@[[media]]]] が使えますが、
[[規則集合]]以外では[[媒体型]]の情報は保持されません。
[CODE(CSS)@en[@[[media]]]] に相当する [[CSSOM]]
上の[[物体]]はなく、[[規則集合]]はそれぞれ[[媒体型]]の情報を保持しているようです。

([[名無しさん]])

[12]
[[媒体型]]は [[titlecase]] [[正規形]]で、最長で
[CODE(CSS)[Print, Screen, Tv, Unknown, Aural, Braille, Embossed, Handheld, Projection, Tty]]
になります。これに含まれない値が元々指定されていたら
[CODE(CSS)[Unknown]] になります。
[CODE(CSS)[Print, Screen, Tv, Aural, Braille, Embossed, Handheld, Projection, Tty]]
は [CODE(DOMa)@en[[[cssText]]]] 時に [CODE(CSS)[All]] に置き換えられます
(逆に言えば、[[構文解析]]時に逆方向に展開しているのでしょう)。

[[入れ子]]の [CODE(CSS)@en[@[[media]]]] は展開・変換後の[[集合]]に対して[[論理積]]をとっているようです。
[[空集合]]になると [CODE(CSS)@en[Unknown]] になっているようです。
([[名無しさん]])

[13]
[[規則集合]]に[[媒体型]]が指定されている場合、
[CODE(DOMa)@en[[[cssText]]]] の[[規則集合]]部分はこうなります:
= [[改行]]
= [CODE(CSS)@en[@[[media]]]]
= [CODE(charname)@en[[[SPACE]]]]
= [[媒体型]]名の[[並び]]の[[正規形]] (>>12)
= [CODE(charname)@en[[[SPACE]]]] ×4
= [[改行]]
= [CODE(CSS)[[[{]]]]
= [[改行]]
= [[規則集合]]の [CODE(DOMa)@en[[[cssText]]]] 相当 (>>7-9)
= [[改行]] (↑の末尾も[[改行]]なので、[[空行]]になる)
= [CODE(CSS)[[[}]]]]
= [[改行]]

([[名無しさん]])

[14]
>>13 [[媒体型]]名の[[並び]]の[[正規形]]がまったく同じ[[規則集合]]が連続する場合、 >>13 の9番の部分に[[規則集合]]が複数入ります。
([[名無しさん]])


[15]
その他の[[@規則]]の [CODE(DOMa)@en[[[cssText]]]] 相当の例:
[PRE(CSS example code)[
@import url( style );
@import url( style );
@import url( a );
@import url( stylea );
@font-face {
 font-family: ;
}
@font-face {
 font-family: a;
}
@font-face {
 font-family: ;
}
@page xXXxxx {}
@page a:lEft {}
@page aa {}
@page :lEft {margin: 1em  2px; }
]PRE]


[16] [CITE[CANONICALIZATION OF CASCADING STYLE SHEET VALUES ]] ([TIME[2004-03-09 06:06:31 +09:00]] 版) <http://www.damowmow.com/playground/canon.txt>

[17] [CITE@en[Re: ''''''[''''''css3-fonts'''''']'''''''''['''cssom''']''' CSSFontFeatureValuesRule vs.  CSSKeyframesRule]]
( ([[John Daggett]] 著, [TIME[2013-05-30 16:07:25 +09:00]] 版))
<http://lists.w3.org/Archives/Public/www-style/2013May/0766.html>

[18] [CITE@en[''''''[''''''cssom'''''']'''''' Reflect reality: CSSRule#cssText setter does nothing · w3c/csswg-drafts@9f8435a]]
([TIME[2016-02-09 16:19:48 +09:00]] 版)
<https://github.com/w3c/csswg-drafts/commit/9f8435ab9f8b2a6ab76e54d2cfd06bec4526ea5a>