[whatwg] Pre element question

Ian Hickson wrote:
> On Fri, 19 Jan 2007, Sam Ruby wrote:
>> People often code things like the following:
>>
>> <pre>
>> one
>> two
>> three
>> </pre>
>>
>> Visually, this ends up looking something like
>>
>> +-------+
>> |       |
>> | one   |
>> | two   |
>> | three |
>> +-------+
>>
>> with the following CSS rule:
>>
>> pre { border: solid 1px #000; }
>>
>> [in standards mode]
> 
> I couldn't reproduce this. In Firefox trunk, with:
> 
> http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C%21DOCTYPE%20html%3E%3Cstyle%3Epre%20%7B%20border%3A%20solid%3B%20%7D%3C/style%3E%0A%3Cpre%3E%0Ax%0A%3C/pre%3E
> 
> ...I get the leading newline dropped.

Presumably then this is yet another difference between 
application/xhtml+xml and text/html.

> If it did do it, in HTML4, it would have been a stardards mode bug (bug 
> 2750, which I filed back in 1999).
> 
> In HTML5, we're dropping that requirement, since everyone ignores it. 
> However, we will, as you point out, have to introduce a special behaviour 
> for a newline at the start of a <pre> element. IE actually does it for 
> more than just the <pre> element (e.g. it does it for <p>, though not 
> <span>) but compatibility with the Web only seems to require it for <pre> 
> since that's all that the other browsers do it for.
> 
> Fixed.

Thanks!

For reference, the current (and presumably as of now no longer valid) 
behavior of html5lib is as follows:

#document
|  <!DOCTYPE HTML>
|  <html>
|    <head>
|      <style>
|        "pre { border: solid; }"
|      "
"
|    <body>
|      <pre>
|        "
x
"
|      "
"

- Sam Ruby

Received on Friday, 19 January 2007 16:37:48 UTC