- From: Justin Wood <jw6057@bacon.qcc.mass.edu>
- Date: Sun, 23 May 2004 20:27:06 -0400
- To: liorean <liorean@f2o.org>
- Cc: www-style@w3.org
To me it seems that the presentation level spec could/may accomplish
this, though I cannot be too sure for speach-based browsers.
http://www.w3.org/TR/2003/WD-css3-preslev-20030813/
Keeping in mind I have not fully read that spec, barely skimmed it.
If not, I thank you for the suggestion.
~Justin Wood
liorean wrote:
>
> Something I feel missing from CSS is that there is no way to swap the
> positions of content without using positioning, and positioning is
> limited in that it removes the elements from their natural places in
> the normal document flow. I would like to propose a property that
> allows for changing the rendering order within the normal document flow.
>
> 'rendering-order'
> Value: <integer> | <integer> [relative | absolute] | auto
> Initial: auto
> Applies to: all elements
> Inherited: no
> Percentages: N/A
> Media: all
> Computed value: <positiveinteger> absolute
>
> The property would change the rendering order for the flow within a
> given containing block. For block level elements it would change the
> rendering order as related to other block boxes (including anonymous
> block boxes) within the same containing block, for inline elements it
> would change the rendering order relative to inline boxes (including
> anonymous such) within the same box, or move the inline box between
> anonymous block boxes if there are block level elements in between.
> Numbers may be negative, and in the case of absolute ordering then
> counts from the end instead of from the beginning. If only a number is
> given, relative is assumed. If the specified order of several elements
> is the same, any element with !important will take precedence when
> calculating the computed value. For other cases source order in the
> document will set the computed order.
>
> To give some examples:
>
> <div>Some <em>inline boxes</em> and <p>some block level boxes</p> and
> another inline box.</div>
>
> With anonymous boxes inserted, in the normal rendering order:
> <div>
> <anonymousblock>
> <anonymousinline>Some </anonymousinline>
> <em id="itest">inline boxes</em>
> <anonymousinline> and </anonymousinline>
> </anonymousblock>
> <p id="btest">
> <anonymousinline>some block level boxes</anonymousinline>
> </p>
> <anonymousblock>
> <anonymousinline>and another inline box.</anonymousinline>
> </anonymousblock>
> </div>
>
>
> Some examples
> - Inline absolute
>
> #itest {
> rendering-order: 0 absolute;
> }
>
> Gives the order:
> <div>
> <anonymousblock>
> <#itest/>
> <anonymousinline/>
> <anonymousinline/>
> </anonymousblock>
> <p/>
> <anonymousblock/>
> </div>
>
> If you instead use:
> #itest {
> rendering-order: -0 absolute;
> }
>
> The order becomes:
> <div>
> <anonymousblock/>
> <p/>
> <anonymousblock>
> <anonymousinline>and another inline box.</anonymousinline>
> <#itest>
> </anonymousblock>
> </div>
>
> - Inline relative
>
> #itest {
> rendering-order: 1;
> }
>
> Gives the order:
> <div>
> <anonymousblock>
> <anonymousinline/>
> <anonymousinline/>
> <#itest/>
> </anonymousblock>
> <p/>
> <anonymousblock/>
> </div>
>
>
> While:
> #itest{
> rendering-order: 2;
> }
>
> Gives:
> <div>
> <anonymousblock/>
> <p/>
> <anonymousblock>
> <#itest/>
> <anonymousinline/>
> </anonymousblock>
> </div>
>
> - Block absolute
>
> #btest {
> rendering-order: 2 absolute;
> }
>
> Gives the order:
> <div>
> <anonymousblock/>
> <anonymousblock/>
> <#btest/>
> </div>
>
>
> While:
> #itest{
> rendering-order: -1 absolute;
> }
>
> Gives:
> <div>
> <anonymousblock/>
> <#btest/>
> <anonymousblock/>
> </div>
>
> - Block relative
>
> #btest {
> rendering-order: -1;
> }
>
> Gives the order:
> <div>
> <#btest/>
> <anonymousblock/>
> <anonymousblock/>
> </div>
>
>
> While:
> #itest{
> rendering-order: 47;
> }
>
> Gives:
> <div>
> <anonymousblock/>
> <anonymousblock/>
> <#btest/>
> </div>
>
>
>
> There, now tell me what obvious holes I have missed...
>
Received on Sunday, 23 May 2004 20:28:21 UTC