cssText

cssText

[1] 4月の月例パッチ「MS06-013」適用で、キヤノンのプリンタ用ソフトに不具合 <http://internet.watch.impress.co.jp/cda/news/2006/04/17/11678.html> (名無しさん 2006-04-17 22:23:46 +00:00)

[2] <http://suika.fam.cx/~wakaba/-temp/test/dom/style-sheet/css-text/> の ie-crash-*.html。

cssText に代入する値が HTML 要素HTML DOM 属性に由来する値だと WinIE 6 (Windows XP SP2) がクラッシュします。

body とか p とか textarea とか、おそらく要素型は任意。 そして text とか background とか className とか accessKey とか value とか defaultValue とか name とか HTML DOM の任意の属性でおk。 でも nodeName とか nodeValue とか nodeType とかだと無問題。

(名無しさん 2007-05-10 13:57:17 +00:00)

[3] IT戦記 - style.cssText の使い処に関する考察 (2007-08-18 12:50:19 +09:00 版) <http://d.hatena.ne.jp/amachang/20070730/1185788557> (名無しさん)

[4] CSSCharsetRulecssText で得られる値 (Firefox 2、Opera 9):

  1. @charset "
  2. encoding 属性の値
  3. ";

encoding"\ が含まれていてもお構いなしです。

(名無しさん)

[5] @namespacecssText で得られている値 (Firefox 2):

  1. @namespace (最後の1文字は SPACE。)
  2. もし名前空間接頭辞が指定されていれば、 それ、そのあとに SPACE を1つ
    1. 構文解析時に NULL (ry
    2. 更に、構文解析時に小文字正規化されています。
  3. url(
  4. 名前空間URI
    1. 構文解析時に NULL (ry
  5. );

名前空間接頭辞名前空間URIにどんな文字が入っていようとお構いなしです。

(名無しさん)

[6] CSSStyleDeclarationcssText で得られる値

  1. 存在する特性ごとに:
    1. 特性名
    2. :
    3. SPACE
    4. 特性値 (対応する DOM属性getPropertyValue で得られる値)
    5. getPropertyPriorityimportant なら、Firefox 2 のみ:
      1. SPACE
      2. !
      3. SPACE
      4. important
    6. (Opera 9 または WinIE 6) 次の特性があれば、 または (Firefox 2) 必ず:
      1. ;
      2. 次の特性があれば、 SPACE

(名無しさん)

[7] CSSStyleRulecssText で得られる値:

  1. selectorText
  2. SPACE
  3. {
  4. WinIE 6 では、改行
  5. WinIE 6 では、SPACE
  6. stylecssText
  7. WinIE 6 では、改行
  8. }

Firefox 2 と Opera 9 の挙動は一致 (ただし stylecssTextselectorText で違っている)

(名無しさん)

[8] >>7WinIE 6CSSStyleSheetcssText のうち、 CSSStyleRule 相当の部分。

CSSStyleRulecssText はないみたい。

(名無しさん)

[9] >>8 で、最後に必ず改行。 (名無しさん)

[10] >>8 で、最後に必ず改行。 (名無しさん)

[11] WinIE 6CSSStyleSheetcssText:

  1. CSSImportRulecssText 相当
  2. CSSFontFaceRulecssText 相当
  3. CSSPageRulecssText 相当
  4. CSSStyleRulecssText 相当

CSSRule 相当の cssText の連結です。各 CSSRule 部は必ず改行で終わっています。

元の CSS の記述の順序に関わらず、種類毎に分けてでてきます。 種類内の順序は保存されます。 @media 内では規則集合@import@page@font-face@media が使えますが、 規則集合以外では媒体型の情報は保持されません。 @media に相当する CSSOM 上の物体はなく、規則集合はそれぞれ媒体型の情報を保持しているようです。

(名無しさん)

[12] 媒体型titlecase 正規形で、最長で Print, Screen, Tv, Unknown, Aural, Braille, Embossed, Handheld, Projection, Tty になります。これに含まれない値が元々指定されていたら Unknown になります。 Print, Screen, Tv, Aural, Braille, Embossed, Handheld, Projection, TtycssText 時に All に置き換えられます (逆に言えば、構文解析時に逆方向に展開しているのでしょう)。

入れ子@media は展開・変換後の集合に対して論理積をとっているようです。 空集合になると Unknown になっているようです。 (名無しさん)

[13] 規則集合媒体型が指定されている場合、 cssText規則集合部分はこうなります:

  1. 改行
  2. @media
  3. SPACE
  4. 媒体型名の並び正規形 (>>12)
  5. SPACE ×4
  6. 改行
  7. {
  8. 改行
  9. 規則集合cssText 相当 (>>7-9)
  10. 改行 (↑の末尾も改行なので、空行になる)
  11. }
  12. 改行

(名無しさん)

[14] >>13 媒体型名の並び正規形がまったく同じ規則集合が連続する場合、 >>13 の9番の部分に規則集合が複数入ります。 (名無しさん)

[15] その他の@規則cssText 相当の例:

@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; }

[16] CANONICALIZATION OF CASCADING STYLE SHEET VALUES ( 版) <http://www.damowmow.com/playground/canon.txt>

[17] Re: [css3-fonts][cssom] CSSFontFeatureValuesRule vs. CSSKeyframesRule ( (John Daggett 著, 版)) <http://lists.w3.org/Archives/Public/www-style/2013May/0766.html>

[18] [cssom] Reflect reality: CSSRule#cssText setter does nothing · w3c/csswg-drafts@9f8435a ( 版) <https://github.com/w3c/csswg-drafts/commit/9f8435ab9f8b2a6ab76e54d2cfd06bec4526ea5a>