Re: [css21] computed value of top/bottom for relative positioning

Anne van Kesteren wrote:
> Given the following tree:
> 
>   G
>     P
>       C
> 
> ... with the following styles:
> 
>   G { height:100px }
>   P { position:relative; bottom:25%; height:0 }
>   C { position:relative; bottom:inherit }
> 
> http://www.w3.org/TR/CSS21/visuren.html#position-props states that for a 
> relative positionined element the computed value of 'bottom' (which is 
> also the inherited value) is defined in 
> http://www.w3.org/TR/CSS21/visuren.html#relative-positioning However, 
> that section states that the computed value of 'top' will be -bottom 
> (i.e. -25%) because 'top' is auto (initial value), but it does not state 
> what the computed value of 'bottom' is in that case, which makes it 
> unclear what 'bottom' for element C means (i.e. is it 25% (leads to 0 
> here) or 25px). The releative positioning section should probably be 
> more clear on what the computed value is here unless I'm missing something.

Nice puzzle!  I don't think you're missing anything, and I suppose it 
depends on what the philosophy of computed values is.  Do specified 
percentages normally remain as percentages for the purposes of the 
computed value?  It feels to me that they are more interesting that way, 
in general.  Certainly, the computed value of 'bottom' would be 25% if P 
were neither statically nor relatively positioned, according to 
http://www.w3.org/TR/CSS21/visuren.html#position-props (9.3.2 Box 
offsets) despite the fact that a pixel value could be calculated at the 
time of determining computed values.

http://www.w3.org/TR/CSS21/visuren.html#relative-positioning (9.4.3 
Relative positioning) is too careless in its existing wording: compare 
"the computed values are always: top = -bottom" to "If 'left' is 'auto', 
its computed value is minus the value of 'right'" (where one supposes 
that 'the value of right' means 'the specified value of right').  One 
presumes that the horizontal and vertical situations are supposed to be 
analogous, in which case the result of "merging" the two statements is 
that percentages are acceptable as computed values for all four 
properties in the case of relative positioning.

However, if the latter statement I quoted is not accurate and should 
instead read "If 'left' is 'auto', its computed value is minus the 
/computed/ value of 'right'", then 9.4.3 provides no guidance at all as 
to how to calculate computed values from specified percentages for these 
four properties.

Cheers,
Anton Prowse
http://dev.moonhenge.net

Received on Thursday, 12 February 2009 20:36:54 UTC