- From: Daniel Glazman <daniel.glazman@disruptive-innovations.com>
- Date: Mon, 27 Dec 2010 11:33:52 +0100
- To: "www-style@w3.org" <www-style@w3.org>, HTML WG <public-html@w3.org>
Hi there, [ please note I have set the Reply-To field of this message to ] [ public-html@w3.org ; followups _only_ there please ] I am hitting a consistency issue related to the style element: if a COMMENT_NODE child containing a valid stylesheet as data is added as child of an empty style element, non-WebKit browsers don't honour that stylesheet. Example: <style type="text/css">p { color: red; }</style> <style id="mystyles" type="text/css"></style> <script> var c = document.createComment("p { color: green; }"); document.getElementById("mystyles).appendChild(c); <script> <p>This paragraph should be green</p> However, the serialization of the test's DOM tree just above after script's execution will create a document instance containing a valid and parsed stylesheet since the HTML parsing rules create an exception if raw text contents of a style element start with the literal string "<!--"... In the example above, the serialization of the style element is <style id="mystyles" type="text/css"><!--p { color: green; }--></style> and that is clearly a valid style element that will result in a green color applied to all paragraphs. FYI, WebKit-based browsers pass my test [1], others don't. I think WebKit is right here. For consistency reasons, comments programmatically added to the children of a <style> element should be considered as the textual concatenation of "<!--", their textual data and "-->". [1] http://disruptive-innovations.com/zoo/csswg/test-style-elt-20101227.html </Daniel> -- W3C CSS WG, Co-chairman
Received on Monday, 27 December 2010 10:34:38 UTC