Re: [css3-flexbox] Changing abspos placeholders to atomic inlines

On 05/30/2012 06:06 PM, Tab Atkins Jr. wrote:
> On Wed, May 30, 2012 at 11:54 AM, Alex Mogilevsky<alexmog@microsoft.com>  wrote:
>>> From: Daniel Holbert [mailto:dholbert@mozilla.com]
>>> Sent: Tuesday, May 29, 2012 6:22 PM
>>>
>>>> I suppose the new solution is not that much harder to do, it is very
>>>> little code elsewhere, but there is new behavior to define, implement
>>>> and test... Can somebody explain why it is better?
>>>
>>> I had the same reaction to this change, FWIW...
>>
>> It looks like at least two implementations don't like the change to atomic inline. Just in favor of stability that should be enough to revert the change and get to what it has been for last 7 years or so.
>
> Hm, I didn't realize the old flexbox did have that behavior in practice.
>
> The reason we made the change is because someone (Anton?) pointed out
> that inlines don't respect 'height', so the placeholder's actual
> dimensions are 0px wide and 'line-height' tall.

The other reason was that the behavior is more predictable for authors
by making them atomic inlines. One of the weird things about placeholders
is that

<div>
   <div/>
   <div/>
</div>

makes 2 flexboxes (or table cells),

<div>
   <div/>
   <abspos/>
   <div/>
</div>

Adding an abspos element makes 3 flexboxes.

<div>
   <div/>
   <abspos/>
   <abspos/>
   <div/>
</div>

But adding another abspos element makes still only 3 flexboxes.


<div>
   <div/>
   <abspos/>
   <abspos/>
   text
   <div/>
</div>

And here it doesn't add any! For something that's invisible and generally
behaves like it doesn't exist, placeholders are weird. Making them atomic
makes their behavior a little bit more predictable: they always add an
invisible flex item.

~fantasai

Received on Thursday, 31 May 2012 02:18:04 UTC