- From: Kang-Hao (Kenny) Lu <kennyluck@csail.mit.edu>
- Date: Wed, 04 Jul 2012 23:55:32 +0800
- To: WWW Style <www-style@w3.org>
(12/07/04 23:25), fantasai wrote:
> On 07/03/2012 03:04 PM, Kang-Hao (Kenny) Lu wrote:
>> == Technical Comments ==
>>
>> # A flex item establishes a new formatting context for its contents.
>> # The type of this formatting context is determined by its
>> # ‘display’ value, as usual.
>>
>> A flex item of 'display: block' should probably use the 'height'
>> calculation in "10.6.7 'Auto' heights for block formatting context
>> roots", but 10.6.7 says
>>
>> # In certain cases (see, e.g., sections 10.6.4 and 10.6.6 above), the
>> # height of an element that establishes a block formatting context is
>> # computed as follows:
>>
>> and who knows what "certain cases" means here (10.6.6 doesn't cover
>> 'table-cell', for example). It's not clear to me if this is a CSS 2.1
>> issue or css3-flexbox issue.
>
> Flex items aren't block-level elements, so those sections don't apply.
> I've added
> # However, flex items are flex-level boxes, not block-level boxes;
> # they participate in their container's flex formatting context,
> # not in a block formatting context.
> to the section to clarify this.
Then which spec/section describes how to calculate the 'height' of a
flex-level box? I thought the sentence
# In addition, if the element has any floating descendants whose
# bottom margin edge is below the element's bottom content edge, then
# the height is increased to include those edges. Only floats that
# participate in this block formatting context are taken into
# account, e.g., floats inside absolutely positioned descendants or
# other floats are not.
in 10.6.7 applies here.
The flex layout algorithm has
# 6 Resolve the flexible lengths of all the flex items to find their
# used main size, and determine their hypothetical cross size from
# this main size.
. Is this "determine their hypothetical cross size from this main size"
something that's not yet defined?
>> # For example, given two contiguous child elements with
>> # ‘display:table-cell’, an anonymous table wrapper box around them
>> # becomes the flex item.
>>
>> Since CSS 2.1 by default doesn't propagate non-inherited properties to
>> the table wrapper box. It should be mentioned that all properties that
>> apply to flex items have this propagation.
>
> Hmm, I thought it was generally stated in 2.1 how anonymous boxes behave.
17.4 Tables in the visual formatting model
# The computed values of properties 'position', 'float', 'margin-*',
# 'top', 'right', 'bottom', and 'left' on the table element are used
# on the table wrapper box and not the table box; all other values of
# non-inheritable properties are used on the table box and not the
# table wrapper box.
>> # Absolutely positioned children of a flex container are not
>> # themselves flex items, but they leave behind "placeholders" in
>> # their normal position in the box tree.
>>
>> I am not sure what "normal position in the box tree" means here. Does it
>> mean that the 'order' value on the absolutely positioned element would
>> be propagated to the placeholder? Is this the only property in
>> css3-flexbox that does this propagation for an abs-pos flex item? If so,
>> I hope this is clarified.
>
> I went with s/normal/hypothetical normal-flow/. Does that work?
I think my exact question is, for a case like
<div style="display: flex">
<span>A</span>
<span style="position: absolute; order: -1;">B</span>
<span style="order: -1">C</span>
</div>
is the place holder before A or not? Or in other words, does the place
holder has 'order: -1' or 'order: 0'?
Your s/// seems to suggest 'order: 0' but I think the wording is still a
bit vague. The hypothetical non-flex normal flow would be "A placeholder
C" but I think you want "C A placeholder" or "placeholder C A".
>> | each child element (except those described below) of a flex
>> | container becomes a flex item.
>
> I don't know how to fix this to be any more precise than it is,
> so I'm going to leave it. ("Element" is incorrect due to anonymous
> table boxes.)
"except those described below" would include absolutely positioned
elements and mis-parented elements.
Cheers,
Kenny
Received on Wednesday, 4 July 2012 15:56:01 UTC