Re: [css2.1] Issue 199 proposal

On 10/25/2010 05:48 PM, Tab Atkins Jr. wrote:
>
> | If an element contains no text, no preserved white
> | space, no inline elements with non-zero margins,
> | padding, or borders, and no other in-flow content
> | (such as images, inline block, or inline tables),
> | then no line boxes are generated inside the
> | element.  The auto position of any child elements
> | is the top of the box in the vertical direction,
> | and the same position horizontally that a zero
> | width, zero height inline replaced element would
> | have if placed in the element.  (This, for example,
> | respects the text-align property.)

So there are two problems with this formulation:
   a) It doesn't handle the case where such line boxes are siblings
      of block boxes, e.g.
        <div><p/><span/></div> or <div><p/><span/><p/></div>
   b) It doesn't specify the contents' transparency wrt margin
      collapsing.

The original text was this:

   # Line boxes that contain no text, no preserved white space, no
   # inline elements with non-zero margins, padding, or borders, and
   # no other in-flow content (such as images, inline blocks or
   # inline tables), and do not end with a line feed must be treated
   # as zero-height line boxes. For the purposes of margin collapsing,
   # this line box must be ignored.

Your earlier proposal was this:

   | Line boxes that contain no text, no preserved white space, no
   | inline elements with non-zero margins, padding, or borders, and
   | no other in-flow content (such as images, inline blocks or
   | inline tables), and do not end with a line feed must be treated
   | as zero-height line boxes for the purpose of positioning the
   | elements inside of them, and must be treated as not existing
   | for any other purpose.

We might be better of working from your original proposal.
How about this:

   | Line boxes are created as needed to hold inline-level content within
   | an inline formatting context. Line boxes that contain no text, no
   | preserved white space, no inline elements with non-zero margins,
   | padding, or borders, and no other in-flow content (such as images,
   | inline blocks or inline tables), and do not end with a preserved
   | newline must be treated as zero-height line boxes for the purpose of
   | determining the static positions of any elements inside of them,
   | and must be treated as not existing for any other purpose.

~fantasai

Received on Wednesday, 23 March 2011 05:59:02 UTC