W3C home > Mailing lists > Public > www-style@w3.org > December 2007

Re: Alignment property proposal

From: Andrew Fedoniouk <news@terrainformatica.com>
Date: Wed, 26 Dec 2007 21:28:58 -0800
Message-ID: <4773381A.1010102@terrainformatica.com>
To: Anne van Kesteren <annevk@opera.com>
CC: fantasai <fantasai.lists@inkedblade.net>, Markus Mielke <mmielke@windows.microsoft.com>, www-style@w3.org

Anne van Kesteren wrote:
> 
> On Wed, 26 Dec 2007 09:44:44 +0100, Anne van Kesteren <annevk@opera.com> 
> wrote:
>> I think it would be good if one of these features exactly matches the 
>> behavior of <center>. (I thought that was the idea behind the 
>> proposal, at least for some proponents.) It seems that WebKit and 
>> Gecko have implemented that as text-align:-webkit-center and 
>> text-align:-moz-center respectively. Maybe we should introduce 
>> block-center as a value for text-align.
> 
> As for vertical centering and horizontal centering in general, I think 
> we should more seriously look into the flexible box model as featured by 
> XUL. Maybe combining it with the Advanced Layout Module in some way as 
> Roc suggested if that's at all feasible. I think that would solve a 
> bunch of layout issues people are currently running into and hacking 
> around using 'float', 'position', and probably script.
> 
> 

XUL flexes are not so suitable for CSS as they describe only 
width/height of elements but for aligning purposes you need flexes
to be applied to margins for example.

For CSS it is better to use so called "flex units" [1,2]:

Following will replace blocks vertically (as usual) and center them 
horizontally:

body
{
   flow:vertical;
}
body > *
{
   margin-left; 1*;
   margin-right; 1*;
}

and this:

body
{
   flow:horizontal;
}

body > *
{
   margin-top; 1*;
   margin-bottom; 1*;
}

will replace blocks in single row and center them vertically.

And this:
body
{
   flow:horizontal;
}

body > *
{
   margin-top; 0;
   margin-bottom; 0;
   height:1*;
}

will replace blocks in single row and make their height equal to each 
other - to the height of tallest element in the row (similar to cells in 
single row table).

-- 
Andrew Fedoniouk.

http://terrainformatica.com

[1] 'flex' units:
http://www.terrainformatica.com/htmlayout/fspu.whtm
[2] The 'flow' attribute: 
http://www.terrainformatica.com/htmlayout/flow.whtm
Received on Thursday, 27 December 2007 05:29:18 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:57 GMT