Closed Bug 2479 Opened 26 years ago Closed 24 years ago

implied/anonymous table elements problems

Categories

(Core :: Layout: Tables, defect, P2)

x86
Windows 95
defect

Tracking

()

VERIFIED FIXED

People

(Reporter: dbaron, Assigned: karnaze)

References

()

Details

(Keywords: css2, testcase)

The CSS table model allows table elements to be implied.  See
http://www.w3.org/TR/REC-CSS2/tables.html#anonymous-boxes .  Use of these
implied objects causes the whole table to disappear.  In the above test, at the
top, UL has display: table-row, and LI has display: table-cell.  A similar
thing is done with the text input areas in the form.  None of these areas show
up at all in NGLayout.

Bug 2478 covers the other (the FORM problem) problem on this page.

I'm using build 99-01-15.
Setting all current Open/Normal to M4.
Status: NEW → ASSIGNED
The <UL> and <LI> elements are mapping now, but there are other problems, so I'm
leaving this open.
There are some serious problems following the rules for placement of anonymous
table objects.  They are defined in 17.2.1 of CSS2:
http://www.w3.org/TR/REC-CSS2/tables.html#anonymous-boxes

For example, you're creating rows around every cell instead of groups of cells
in:

http://www.bath.ac.uk/%7Epy8ieh/internet/eviltests/table/generic1.html
I've started a more complete test of these problems at:

http://www.fas.harvard.edu/~dbaron/csstest/sec170201
per leger, assigning QA contacts to all open bugs without QA contacts according
to list at http://bugzilla.mozilla.org/describecomponents.cgi?product=Browser
This bug is a prerequisite to solving bug 4325.
Target Milestone: M4 → M5
moving to M5
Target Milestone: M5 → M6
Moving to M6.
I have a better test case for this at:

http://www.fas.harvard.edu/~dbaron/csstest/sec170201

You have two serious problems (maybe more):

1) Your are throwing away content that is invalid inside certain table elements
based on display types.  This should be done in the HTMLParser if you need to
do it for compatibility, since CSS allows anything inside anything.

2) You are not grouping siblings aggressively enough.  If there are two table-
row (or table-row-group, etc.) siblings without a table parent, they should be
in the same table.  Similarly for adjacent cells being in the same row.
[adding myself as cc...]
Moving to M8.
Summary: Implied CSS table elements cause things to disappear → {css2} The CSS Table Model is Broken
Summary: {css2} The CSS Table Model is Broken → {css2} implied/anonymous table elements problems
Changing title from "{css2} The CSS Table Model is Broken" to "{css2}
implied/anonymous table elements problems".  Ian's retitling was a little too
general, I think.  Some of the testcases may be, too.
Here is another quick example of what can go wrong:

   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">

   <style type="text/css">
      DIV { display: table; }
   </style>

   <title>Mozilla Tests: Now you see it, now --</title>

   <DIV>
     <p> You should see this text! </p>
   </DIV>

The perfectly valid sample of HTML+CSS shown above doesn't render a thing.
It should render the "You should see this text!" identically to the case
where DIV is marked as {display:block}.
Moving to M9.
Whiteboard: [TESTCASE]
Marking [TESTCASE], since there are already at least 5.
Target Milestone: M9 → M11
Moving to M11
Target Milestone: M11 → M12
Moving to M12.
The rules on implied/anonymous table elements have been revised in the errata:

http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html

I need to update my test, but have not done so yet.
mass move to m14.
Keywords: css2
Migrating from {css2} to css2 keyword. The {css1}, {css2}, {css3} and {css-moz}
radars should now be considered deprecated in favour of keywords.
I am *really* sorry about the spam...
Bulk moving [testcase] code to new testcase keyword. Sorry for the spam!
Keywords: testcase
Moving to M16.
Target Milestone: M14 → M16
*** Bug 20113 has been marked as a duplicate of this bug. ***
Summary: {css2} implied/anonymous table elements problems → implied/anonymous table elements problems
Whiteboard: [TESTCASE]
Blocks: 30378
Adding beta2 keyword.  This turns out to be a dependancy for a beta2 feature
represented by bug 7648.
Keywords: beta2
I'm wondering if the CSS 2 spec is correct regarding anonymous frames. For 
example, it states:

2.If the parent P of a 'table-cell' element T is not a 'table-row', an object 
corresponding to a 'table-row' will be generated between P and T. This object 
will span all consecutive 'table-cell' siblings (in the document tree) of T. 

This implies that if the next sibling of T is a button (for example) then its 
anonymous cell parent will not be parented by T's anonymous table-row parent. 
There are similar questions regarding the other cases.
That may be correct, although it may be an error.  It might be a good idea to
mention it on www-style.  However, note that the rules are revised in the
errata:
http://www.w3.org/Style/css2-updates/REC-CSS2-19980512-errata.html

People have commented that they're still wrong.  I haven't looked closely enough
to tell... except rule (5) in the errata is wrong because it needs to mention
columns and column groups.
This is fixed with my latest checkin. The page that tests inheritance only works 
completely in standard mode, because that is how the style system works 
currently.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
*** Bug 4325 has been marked as a duplicate of this bug. ***
No longer blocks: 8411
Keywords: nsbeta2
Using 9/12 build, verified fixed
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.