Closed
Bug 285024
Opened 19 years ago
Closed 19 years ago
A CDATA section that appears inside a STYLE tag will cause the contents of the STYLE tag to be ignored.
Categories
(Core :: DOM: HTML Parser, defect)
Tracking
()
RESOLVED
INVALID
People
(Reporter: houghtoa, Unassigned)
Details
Attachments
(3 files)
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6) Gecko/20050225 Firefox/1.0.1 <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xml:lang='en-US' xmlns='http://www.w3.org/1999/xhtml'> <head> <title>Title</title> <meta http-equiv='Content-Type' content='application/xhtml+xml; charset=utf-8'/> <style type='text/css'> <![CDATA[ @media all { body { background-color: pink; } } ]]> </style> </head> <body> <p>Some text</p> </body> </html> Reproducible: Always Steps to Reproduce: 1. Copy XHTML tags from Details section and paste to a file. 2. Open the file in Firebird. 3. Actual Results: The background of the body was white. Expected Results: The background of the body should have been pink.
Comment 1•19 years ago
|
||
Whilst this behaviour is certainly surprising (and I consider it a defect), could you convince me by quoting a standard that your observed behavour violates. I may be wrong, but I believe that modern browsers treat comment markers as CDATA, and the attached document which works, is the recommended way of doing what you want.
Comment 2•19 years ago
|
||
In XHTML you should set the background on the <html> element. http://www.w3.org/TR/CSS21/colors.html#q2 paragraph 4, "This does not apply to XHTML documents" -> INVALID
Status: UNCONFIRMED → RESOLVED
Closed: 19 years ago
Resolution: --- → INVALID
Comment 3•19 years ago
|
||
Mats, your statement is (of course) correct, and would be accepted even without the reference. I appreciate the the Reporter would have helped his cause by attaching rather than pasteing his document. I fear that you may not have answered his question. I enclose a testcase with the style properly applied to the html element, which still doesn't work. In fact it doesn't work if there is only a CDATA section delimiter, videlicet: <style type="text/css"> <![CDATA[ < ... no markup here! ... > ]]> html { background-color: pink; } </style> IMHO, this is not a problem for modern browsers as comment delimiters work; but I was under the impression that it was usual to (also) use a CDATA section as the Reporter had, to prevent older browers skipping the style strings with the comment. I don't have a reference to a standard either deprecating the Reporter's usage or mandating Mozilla's behaviour. This is why the observed behaviour looks surprising; but I certainly don't exclude a simple explanation, merely assert that I don't know of one!
Comment 4•19 years ago
|
||
(In reply to comment #3) > I enclose a testcase with the style properly applied to the > html element, which still doesn't work. In fact it doesn't work > if there is only a CDATA section delimiter, videlicet: > > <style type="text/css"> > <![CDATA[ < ... no markup here! ... > ]]> > html { background-color: pink; } > </style> > > IMHO, this is not a problem for modern browsers as comment delimiters work Comment delimiters? With the markup above, you are asking the CSS parser to parse < ... no markup here! ... > html { background-color: pink; } which is rejected because the selector "< ... no markup here! ... > html" is invalid. The following works fine for me: <style type="text/css"> <![CDATA[ html { ]]> background-color: <![CDATA[ pink; ]]> } </style> CDATA sections are just a way to tell the XML parser that it should not parse that section as XML, just read it as character data. See http://www.w3.org/TR/2000/REC-xml-20001006#sec-cdata-sect
Comment 5•19 years ago
|
||
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8b2) Gecko/20050227 Firefox/1.0+ I certianly understand your latest comment, and I am quite prepared to accept that I am wrong (perhaps in some way that I am yet ignorant of). I pasted your snippet into my document, and it does not work for me. When I spoke of the mere presence of a CDATA section marker, I was using this: <style type="text/css"> <![CDATA[]]> html { background-color: pink; } </style> and I put in the dummy text for clarity.
Comment 6•19 years ago
|
||
(In reply to comment #4) > (In reply to comment #3) > > [ snip ] > Comment delimiters? I was going by http://www.cs.rit.edu/~ats/xml-2001-3/rec/REC-css1.html#containment-in-html http://www.w3.org/TR/xhtml1/#C_14 I will have to check with an XML reference as I cannot find the page that I had a few days ago which dealt with this. My working testcase https://bugzilla.mozilla.org/attachment.cgi?id=176495 shows what I meant.
Comment 7•19 years ago
|
||
(In reply to comment #6) The chapter heading for the XHTML1 C.14 URL you cited is "Referencing Style Elements when serving as XML" but you are *not* serving the content as XML, you are serving it as text/html which is an entirely different ball game... Please see Chapter 4 and Appendix C of the XHTML spec if that is what you intend to do. http://www.w3.org/TR/xhtml1/#diffs http://www.w3.org/TR/xhtml1/#guidelines See also 27403 comment 24 as to why we do not support CDATA sections for XHTML sent as text/html.
Comment 8•19 years ago
|
||
Comment on attachment 176709 [details]
Non-working case with CDATA
Changing MIME type to text/xml - should work now
Attachment #176709 -
Attachment mime type: text/html → text/xml
Comment 9•19 years ago
|
||
Many thanks. I think that I have grasped all the points now. 1. It is possible that the Reporter may have thought that the element <meta http-equiv='Content-Type' content='application/xhtml+xml; charset=utf-8'/> would switch on the behaviour that he wanted. In fact, to get the defective behaviour it seems necessary for the local file in step 1 to have the extension .html . If there is no extension then (I'm guessing) Firefox's content sniffing picks up the XML declaration on the first line. 2. I wasn't aware that it was possible to have Bugzilla apply a content type of application/xhtml+xml or equivalent to an attachment; as there was no matching choice in the drop down menu. If I could have done this, I would probably have posted the full answer early on, as I was thinking that it might be a content-type problem: but was put off once I had reproduced the Reporter's problem using his recipe. Grateful for your explanations.
You need to log in
before you can comment on or make changes to this bug.
Description
•