CSSFrameConstructor/Constraints

From MozillaWiki
Jump to navigation Jump to search

This page lists constraints for the CSSFrameConstructor

Some constraints to start things off. Feel free to come up with a better syntax to mark optional and multiple frames

Tables

A table is always constructed of a frame tree like:

 nsTableOuterFrame
   (nsTableCaptionFrame)       optional
   nsTableFrame
     (nsTableColGroupFrame     optional, right? ,see below
       nsTableColFrame)
     nsTableRowGroupFrame      (is this optional?)
       nsTableRowFrame
         nsTableCellFrame

The nsTableCaptionFrame and nsTableCellFrames will hold non-table frames.


The nsTableCellFrame creates a block inside (the so called inner table cell frame) which will hold non table frames.

The attempt to create table foreign frames below any table frame but the caption and the inner table cell frame invokes the table pseudo frame creation.

For every column in a table cell will be a column frame and a colgroup frame which holds the column frame.

As soon as there is one table cell frame the existence of a colgroup is mandatory.

A table row will always be encapsulated in a row roup. In this sense the rowgroup is not optional. However a empty table frame is possible. There is no reasonable public use of this other than in Hixies testcase of this.

Grids