- From: Boris Zbarsky <bzbarsky@MIT.EDU>
- Date: Tue, 16 Sep 2003 10:37:09 -0400
- To: staffan.mahlen@comhem.se
- Cc: Ian Hickson <ian@hixie.ch>, "www-style@w3.org" <www-style@w3.org>
> <table>
> <tr><td>First</td><td>Second</td></tr>
> Third
> <tr><td>Fourth</td></tr>
> </table>
Given this HTML, a typical HTML parser will do some error-recovery because a
text node is not allowed as a child of the table node in HTML. Typically, the
parser will create the following DOM tree:
HTML
\_BODY
|\_#text ("Third")
|
\__TABLE
\_.....
That is, by the time CSS sees the DOM tree, the text is NOT a child of that
table. The case Ian is talking about is when there is a text node in the DOM
and its parent has display:table. To see how current browsers handle this
case, you need to put it there via DOM manipulation, typically.
Alternately, you can do something like:
<div style="display: table">
<div style="display: table-row">
<div style="display: table-cell">First</div>
<div style="display: table-cell">Second</div>
</div>
Third
<div style="display: table-row">
<div style="display: table-cell">Fourth</div>
</div>
</div>
which will create the right CSS box model for testing this, assuming the
browser supports those display values, of course.
Boris
--
Washington [D.C.] is a city of Southern efficiency and
Northern charm.
-- John F. Kennedy
Received on Tuesday, 16 September 2003 10:37:15 UTC