Re: [CSS21] Another ambiguity in the definition of "containing block"

On 07/13/2010 11:26 PM, Boris Zbarsky wrote:
> On 7/13/10 5:00 PM, fantasai wrote:
>> Add to section 9.2.1.1
>> <http://www.w3.org/TR/CSS21/visuren.html#anonymous-block-level>:
>>
>> | Anonymous block boxes are ignored when resolving percentage values
>> | that would refer to it: the closest non-anonymous ancestor box is
>> | used instead. For example, if the child of the anonymous block box
>> | inside the DIV above needs to know the height of its containing block
>> | to resolve a percentage height, then it will use the height of the
>> | containing block formed by the DIV, not of the anonymous block box.
>>
>> Because that's the best I can come up with here.
>
> That wording suggests that the anonymous block box in fact forms a
> containing block. Does it? Why can we not just say that anonymous block
> boxes are not considered when determining the containing block? Is there
> nothing other than percentages that depends on the containing block (or
> more importantly its height, since the content width of the anonymous
> block box is the content width of its parent)?

dbaron noted that anonymous block boxes do need to form a containing block
to handle the float positioning rules correctly:
   http://www.w3.org/TR/CSS21/visuren.html#float-position

Also,

http://www.w3.org/TR/CSS21/text.html#indentation-prop
   # This property specifies the indentation of the first line of text
   # in a block.

<div style="text-indent: 10%">
   Indented
   <p></p>
   Indented?
</div>

If we don't want the second half of the <div> indented (and I think we
don't, because e.g. blockquotes or block code in the middle of a
paragraph shouldn't trigger indentation afterward), then it's not even
enough for the anonymous block to not be a containing block. It has to
not exist.

~fantasai

Received on Wednesday, 14 July 2010 09:08:13 UTC