Re: [CSS21] Distinguishing block boxes, block containers, and block-level elements

Repeating what I already quickly wrote before, thank you for trying to
fix up these notions that are such cornerstones of the CSS rendering model
yet were previously far from clear.

>   | Block-level elements generate a principal block-level box that

This still has the problem that it's unclear whether it means some or all
such elements.  Please clarify, perhaps using the word "each" or "usually".
If the former, then make sure to be consistent with the rule that
display:none elements generate no boxes; while if using "usually" or "some"
or similar then it might be useful to give a link to (or follow with) a more
precise rule for which elements do or don't.

Is it true that a block-level box is one that is the principal block box of a
block-level element?
That's the impression given here, but the text on anonymous block boxes
suggests that anonymous block boxes are block-level boxes, even though
they aren't the principal block box of any element.

>   | Except for ..., |  the principal block-level box is also a
>   | <dfn>block container box</dfn>.

Using <dfn> makes this appear to be a definition of what a block container box is
(i.e. X is a block container box if and only if it is the principal block-level box
of some block-level element that is neither a table element nor a replaced element),
but that turns out not to be the case.

I suggest putting the definition of block container box in a single sentence,
e.g. "A <dfn>block container box</dfn> is a box that is either ...".

>   | Boxes that are
>   | block-level block containers are called <dfn>block boxes</dfn>.

Here the use of <dfn> suggests that this is intended to be the definition
of the phrase "block box", whereas the wording isn't a definition:
I'd read it as saying that all boxes that are block-level and are
block containers are block boxes, but the wording suggests that some other
things might be block boxes too.

fantasai comments that the intent is that

  block box = block-level block container box or replaced block-level box

If so, then I suggest

  A block box is a block-level box that is either a block container box or a
  replaced box.

Note in any case that "replaced box" needs to be defined somewhere and
mentioned in the index.  Currently the index does have an entry for
"replaced element", but it links to a definition that doesn't mention "box".
I suggest that both the index entry and the definition say "element or box".

> Section 9.2.2 Inline-level elements and inline boxes
> 
>   # Several values of the 'display' property make an element inline[-level]:

Not clear as to whether it means "sometimes" or "always".
Also not clear whether any other elements can be inline-level.

>   # Inline-level elements generate
>   # inline[-level] boxes[, which ...].

Same issues as with the corresponding block-level text.


Sorry, I haven't yet read the rest (I need to go now).

pjrm.

Received on Thursday, 29 July 2010 07:31:23 UTC