Is the CSS 'white-space' property supposed to be able to affect the
whitespace between block elements?

For example, in the document used as an example in "[Whitespace in the
DOM][1]" as follows, there is whitespace between the `</h1>` and the
`<p>`:

    <!-- My document -->
    <html>
    <head>
      <title>My Document</title>
    </head>
    <body>
      <h1>Header</h1>
      <p>
        Paragraph
      </p>
    </body>
    </html>

This whitespace is normally removed; for example, [the XHTML spec says
that a conforming user agent must meet all of the following
criteria][2]:

> In elements where the 'xml:space'
> attribute is set to 'preserve', the
> user agent must leave all whitespace
> characters intact (with the exception
> of leading and trailing whitespace
> characters, which should be removed).
> Otherwise, whitespace is handled
> according to the following rules:
>
> * All whitespace surrounding block elements should be removed.
> * Leading and trailing whitespace inside a block element must be
> removed.
> * Line feed characters within a block element must be converted into a space
> (except when the 'xml:space' attribute
> is set to 'preserve').
> * A sequence of white space characters must be reduced to a single space
> character (except when the 'xml:space'
> attribute is set to 'preserve').

My questions are as follows:

* If I use the [CSS white-space property][3] on the `<body>`, should
this be able to preserve the whitespace between block elements (e.g.
between the `</h1>` and the `<p>`)? Or is whitespace between blocks
always removed, with the white-space property only affecting
whitespace within blocks?

* The XHTML spec says that a `<body>` [cannot directly contain
PCDATA][4] (i.e. text). Does that mean that whitespace (being a kind
of text) that's a direct child of the `<body>` tag is always
insignificant/ignored, and cannot be enabled via CSS? If yes and
whitespace between the `</h1>` and the `<p>` in the above example were
ignored because it's a direct child of the `<body>`, would/should that
whitespace still be ignored if there were a `<div style="white-space:
pre">` immediately within the `<body>` and enclosing all the other
elements?

* [The 'white-space' processing model][5] starts with, "Any text that
is directly contained inside a block element (not inside an inline
element) should be treated as an anonymous inline element". What
should I understand about pure whitespace (whitespace with no text)?

* Is there a rule (and if so, where is this rule defined) about
removing whitespace within inline elements? For example in the
following sequence `<p>The <strong> lazy </strong> dog.</p>` should
the whitespace after the `<strong>` tag be removed? (The HTML 4 spec
has [a rule about this for line breaks][6]; I was wondering whether
this rule also applied to other, non-line-beak whitespace, and whether
this rule is mentioned/defined/allowed/assumed in any XHTML or CSS
specification.)

I'm more interested in what I'm supposed to understand from the
(present and/or future CSS and/or HTML and/or XHTML) specs than I am
in knowing how well if at all the various browser versions implement
those specs.



  [1]: https://developer.mozilla.org/en/whitespace_in_the_dom
  [2]: 
http://www.w3.org/TR/2000/WD-xhtml-modularization-20000105/conformance.html#s_conform_user_agent
  [3]: http://www.w3.org/TR/CSS2/text.html#white-space-prop
  [4]: 
http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/abstract_modules.html#s_structuremodule
  [5]: http://www.w3.org/TR/CSS2/text.html#white-space-model
  [6]: http://www.w3.org/TR/html401/appendix/notes.html#notes-line-breaks
______________________________________________________________________
css-discuss [cs...@lists.css-discuss.org]
http://www.css-discuss.org/mailman/listinfo/css-d
List wiki/FAQ -- http://css-discuss.incutio.com/
List policies -- http://css-discuss.org/policies.html
Supported by evolt.org -- http://www.evolt.org/help_support_evolt/

Reply via email to