'vertical-align' and 'direction'

There are two attributes which have completely
different meanings in different situations in CSS currently: 

vertical-align 
    1) inline positioning of element itself
    2) content alignment in table-cell (and table-row).

direction
    1) direction of text flow.
    2) order of columns in display:table elements

Sharing name 'vertical-align' between two entities disables 
vertical content alignment to be applied to *any* container. 
Element can be placed in line and aligned there (e.g. inline-block) and
may have its content aligned vertically at the same time. With 
sole 'vertical-align' it is just impossible.

Sharing name 'direction' makes impossible to inherit text direction in table cells. 

Proposal:

To introduce 
1) 'content-vertical-alignment' attribute with the same set of values as vertical-alignment
2) (probably) 'content-alignment' attribute with left, right, center values. This is not text-alignment
but horizontal alignment of contained blocks. 
3) 'flow' attribute with possible values left-to-right, right-to-left, top-to-bottom (default), bottom-to-top(?). This attribute can be applied to *any* block container (e.g. div) . table element accepts only left-to-right and right-to-left values - column ordering.

For the sake of compatibility with HTML/TABLE to introduce also MultiLength units (or %%)
Their formal definition can be found here: http://www.w3.org/TR/html401/types.html#type-length
Availability of such units will be final step allowing to emulate current HTML behavior in CSS in full.

Comment: if we will allow MultiLengths to appear in margins and paddings then 
'content-vertical-alignment' and 'content-alignment' can be omitted completely.
(E.g. to align content to bottom it is enough to set container's padding-top:1*; 
to top: padding-bottom:1*; and to middle: padding:1* 0; )

If this really make any sense I can formalize this in more strict form for inclusion in the spec. 


Andrew Fedoniouk.
http://terrainformatica.com

Received on Tuesday, 5 October 2004 06:40:39 UTC