[css3-multicol] Column Model Underdefined

The section
   http://www.w3.org/TR/2007/WD-css3-multicol-20070606/#the-multi-column
is somewhat under-defined. It doesn't precisely describe how the model
behaves with page breaks and spanning elements.

Here's some proposed text. It may or may not say what you want it to
say, but we can use it as a starting point. It is intended to replace
paragraphs 1, 2, 3, and 6 in section 3, before Example VIII.

   | A /multi-column element/ (or "multicol" element) is an element
   | whose 'column-width' or 'column-count' property is not 'auto'
   | and therefore acts as a container for multi-column layout.
   |
   | In the traditional CSS box model, the content of an element is
   | flowed into the content box of the corresponding element.
   | Multi-column layout introduces a new type of container between
   | the content box and the content, namely the /column box/ (or
   | "column" for short). The content of a multi-column element is
   | flowed into its column boxes. Column boxes act as the containing
   | block for their content with the exception that percentage values
   | that must be calculated against the containing block height are
   | calculated based on the multi-column element's height, not the
   | column box's height.
   |
   | Column boxes in a multi-column element are arranged into /rows/.
   | Like table cells, the column boxes in a row are ordered in the
   | inline progression direction of the multi-column element. The
   | /column width/ is the length of the column box in the inline
   | direction (parallel to the element's line boxes). The /column
   | height/ is the length of the column box in the block direction
   | (perpendicular to the element's line boxes). All column boxes
   | in a multi-column element have the same column width, and all
   | column boxes in a row have the same column height. Within each
   | row in the multi-column element, adjacent column boxes are
   | separated by a /column gap/, which may contain a /column rule/.
   |
   | In the simplest case a multi-column element will contain only
   | one row of columns, and the height of each column will be
   | equivalent to the used height of the multi-column element's
   | content box. If the multi-column element is paginated, then
   | the height of each row is constrained by the length of the
   | page such that a column box never splits across pages: the
   | column boxes are instead shortened to fit and the rest of the
   | content flowed into a new row of column boxes on the next page.
   | The same effect occurs when a _spanning element_ divides the
   | multi-column element: the columns before the spanning element
   | are balanced and shortened to fit their content. Content after
   | the spanning element then flows into a new row of column boxes.
   |
   | A multi-column element establishes a new block formatting context,
   | as per CSS 2.1 section 9.4.1.

~fantasai

Received on Thursday, 13 December 2007 00:14:33 UTC