Re: [CSS2.1] abs. pos. inline-block replaced element's height set to a percentage

Le Mar 4 septembre 2012 12:14, Tab Atkins Jr. a écrit :
> On Mon, Sep 3, 2012 at 5:54 PM, "Gérard Talbot" <www-style@gtalbot.org>
> wrote:
>> 2-
>> An iframe, which is an inline-block replaced element, does not have an
>> intrinsic height, does not have an intrinsic width and does not have an
>> intrinsic ratio. So, how could it have, under any circumstances, an
>> intrinsic height, like the assert text is suggesting?
>
> I can't find it directly stated anywhere,

Here's where they can be found:

"
Otherwise, if 'width' has a computed value of 'auto', but none of the
conditions above are met, then the used value of 'width' becomes 300px. If
300px is too wide to fit the device, UAs should use the width of the
largest rectangle that has a 2:1 ratio and fits the device instead.
"
Section 10.3.2 Inline, replaced elements
http://www.w3.org/TR/CSS21/visudet.html#inline-replaced-width


"
Otherwise, if 'height' has a computed value of 'auto', but none of the
conditions above are met, then the used value of 'height' must be set to
the height of the largest rectangle that has a 2:1 ratio, has a height not
greater than 150px, and has a width not greater than the device width.
"
10.6.2 Inline replaced elements, block-level replaced elements in normal
flow, 'inline-block' replaced elements in normal flow and floating
replaced elements
http://www.w3.org/TR/CSS21/visudet.html#inline-replaced-height


> but its intrinsic width is
> 300px, and its intrinsic height is 150px.


It still is not intrinsic. These 300px for width and 150px for height seem
to be pre-defined fallback used values, and not intrinsic and not the way
the spec defined what intrinsic dimensions means.


> This is at least implied by
> the algorithms, which default to 300/150 in various situations.


How sections 10.6.2, 10.6.5 and 10.6.4 interrelate to each other is not
perfectly clear.

E.g.:

Section 10.6.5 starts by stating:

"This situation is similar to the previous one,"

it would be clear to say similar to section 10.6.4 or to name such
situation as "Absolutely positioned, non-replaced elements".

"except that the element has an intrinsic height."

But that is not so for inline-block replaced element like an iframe.

"The sequence of substitutions is now:"

What's the sequence of substitutions exactly? The #1 to #6 list-items in
section 10.6.4 are a pick the rule that apply in the list while in section
10.6.5 it's more of a sequence of steps to execute. So, it does not seem
to be the same thing.


"The used value of 'height' is determined as for
<http://www.w3.org/TR/CSS21/visudet.html#inline-replaced-height> inline
replaced elements.  If 'margin-top' or 'margin-bottom' is specified as
'auto' its used value is determined by the rules below."

But one issue that bugs/confuses me is that the first thing to do in
section 10.6.2 in in order to determine height of inline replace element
is to "zero" the vertical-margins. There seems to be a contradiction here.

Gérard
-- 
CSS 2.1 Test suite RC6, March 23rd 2011
http://test.csswg.org/suites/css2.1/20110323/html4/toc.html

Contributions to CSS 2.1 test suite
http://www.gtalbot.org/BrowserBugsSection/css21testsuite/

Web authors' contributions to CSS 2.1 test suite
http://www.gtalbot.org/BrowserBugsSection/css21testsuite/web-authors-contributions-css21-testsuite.html

Received on Thursday, 6 September 2012 04:04:12 UTC