- From: Mikko Rantalainen <mikko.rantalainen@peda.net>
- Date: Fri, 10 Jun 2005 10:22:54 +0300
- To: "www-style@w3.org" <www-style@w3.org>
Emrah BASKAYA wrote:
> On Thu, 09 Jun 2005 18:25:57 +0300, Mikko Rantalainen
> <mikko.rantalainen@peda.net> wrote:
>>
>>I propose a new property
>>margin-box-model: [ horizontally-symmetric | symmetric ]
>>default value: horizontally-symmetric
>
> Nice idea, I am in for any solution that will let me do the job. Some
> points I'd like to make tho, this may not be as easy to fix in the current
> margin-method, because two or more block level elements with margin: auto
> (symmetric) may come one after another and what should happen in those
> circumstances should also be defined.
I think that if the box model is claimed to be symmetric, then the
behavior should be the same for both vertical and horizontal
directions. To me this is logically the same as having multiple
non-replaced 'inline-block' elements on a row; the spec already
defines such case as following:
http://www.w3.org/TR/CSS21/visudet.html#q12
"If 'width' is 'auto', the used value is the shrink-to-fit width as
for floating elements.
A computed value of 'auto' for 'margin-left' or 'margin-right'
becomes a used value of '0'. "
Again, simply replace 'width' with 'height', 'left' with 'top' etc.
After saying that, I don't believe this is a good way to define
"margin: auto" for vertical spacing. I think it's a statement that
current 'inline-block' layout rules for 'auto' values are not good
enough. The whole point of "symmetric" value is to ask the UA to
handle both vertical and horizontal sizing identically. All the
tweaks we're able to do horizontally will be needed also vertically
once the top-to-bottom content keeps increasing in the web.
> One advantage of having to deal with the content position
> (content-vertical-align) instead of position relative to the parent
> (margin: auto) is that, we would not *need* to have a parent to adjust to.
How do you define content position centered to something that isn't
the parent? I realize that we need text-vertical-align property if
we're claiming to be symmetric, but having properties that *really*
access margin values is far from transparent system.
Current system defines "centering" as applying equal margins to all
sides of the content. You have to describe new centering features in
the same terms.
Also, if I have structure
<div><a/><b/></div>
and rule
div, a, b { content-vertical-align: center; display: block; }
and <div> is higher than than combined height of <a> and <b>, how
they will be positioned? If 'content-vertical-align' adjusts
"margin"s, how do I define the spacing between <a> and <b>?
> see a reason why two methods should not co-exist. I still believe
> content-vertical-align is easier to understand and to define, tho.
For the simple case, yes. However, as I reasoned earlier, once you
deal with the interactions with margins the positioning could be far
from simple. Also, the cascade and inheritance may prove to be hard
with this model (just a guess...)
--
Mikko
Received on Friday, 10 June 2005 07:22:59 UTC