- From: James Elmore <James.Elmore@cox.net>
- Date: Tue, 6 Nov 2007 08:08:34 -0800
- To: CSS <www-style@w3.org>, w3c-css-wg@w3.org
On Nov 6, 2007, at 7:30 AM, Jens Meiert wrote:
>
>> Allow centering of content within a containing block.
>
> It sounds like you mean something like the "auto" value [1] of the
> "margin" property?
>
>> ' alignment'
>> Value: left |center | right | inherit
>
> Like "margin: auto" equaling "alignment: center"?
>
>
> [1] http://www.w3.org/TR/CSS21/
> visudet.html#Computing_widths_and_margins
>
> --
> Jens Meiert
> http://meiert.com/en/
>
>
Sometimes designers like to think in terms of how much space to use
on either side of an object. For this, "margin" is perfect. It can be
set to "auto" to keep the object in the middle, or it can accept
fixed values (e.g., "12px" or "0.5in") or percentages.
However, sometimes designers think in terms of positioning and
alignment.
"Alignment: center" would correspond with "margin: auto". There is
clearly a correspondence between the two, the real difference is in
the way the user thinks of the problem. I would like to see both
"margin" and "alignment" included in CSS and that would allow the
user to think about the problem in whichever terms he/she wants.
This proposal lacks a little of being able to fulfill that
correspondence. There is no way to align objects vertically or both
vertically and horizontally within a block. There is also no
consideration of the possibility that a user might want the aligned
block fixed ("2.54cm") or relative ("20%"). Since the two ways of
considering layout (margins and alignment) correspond, there is
little extra effort in allowing both, the main coding (actual layout)
would be in a single place and probably already exists; only the
front end (the user interface, the CSS parsing, whatever you want to
call it) would be added.
What about:
align, align-horizontal, align-vertical: start | end | center | auto
| {fixed-units} | {percentages}
Align-horizontal and align-vertical accept one or two values. Start,
end, and center would be a single value, related to the direction of
block layout flow and would place the aligned object at the obvious
place within the block. Either one or two of the auto, {fixed-units},
or {percentages} would be allowed. The first one would apply to the
start of the block and the second one would apply to the end.
Disambiguating and constraining rules similar to those for "margin"
would be applied if the aligned block were too small or too large to
fit within the alignment requests.
Align accepts one, two, three, or four values, relating to horizontal
and vertical alignment. I'm not sure of the best order, only that it
might be nice to have a shorthand, similar to margin.
If I'm using the wrong terminology, I apologize. {fixed-units} are
like px, cm, in. Do we also want to allow em, ex, and so on?
There are more details to decide on, but I don't want to write a
novel unless there is interest. I can fill out this proposal a little
more if someone asks for it.
James Elmore
Received on Tuesday, 6 November 2007 16:15:38 UTC