Re: [css3-writing-modes] Keyword alternatives to "logical"

Koji Ishii <kojiishi@gluesoft.co.jp> wrote on 2010/10/28 0:27:16
> By looking at John and Murakami-san's proposals and Håkon's feedback, I would like to propose another alternative to the "logical" keyword:
> 
>   margin-top: of-block 1em;
> 
> I hope this makes some sense in English, although question remains if:
> 
>   margin-left: of-block 1em;
> 
> can points to the correct side of the block in LTR/RTL. I can't determine from my English skill, someone's help would be appreciated. But if it does, this same keyword should work in shortcuts like this:
> 
>   margin: of-block 1em 2em 3em 4m;
> 
> It's just a change in keyword, but being able to use single keyword everywhere could help both authors and browser developers a bit.

I think it is difficult to define a single keyword.
I wrote in <http://lists.w3.org/Archives/Public/www-style/2010Oct/0775.html>:
> >     margin: [beas|tobi]? && <margin-width>{1,4}
> >         | [before|end|after|start|outside|inside] <margin-width>
> > 
> >     margin-top:    before? <margin-width>
> >     margin-right:  [end|outside]? <margin-width>
> >     margin-bottom: after? <margin-width>
> >     margin-left:   [start|inside]? <margin-width>

I'd like to use before|end|after|start|outside|inside keywords for consistency with other property values.
But I know the above definition is not very good; it's very horizontal-tb-ltr biased. So I want the following instead:

    margin-top:    [before|end|after|start]? <margin-width>
    margin-right:  [before|end|after|start|outside|inside]? <margin-width>
    margin-bottom: [before|end|after|start]? <margin-width>
    margin-left:   [before|end|after|start|outside|inside]? <margin-width>

Example:
  #foo {
    margin-top:    start 1mm;
    margin-right:  before 2mm;
    margin-bottom: end 3mm;
    margin-left:   after 4mm;
  }

The computed values will be,
  when writing-mode is vertical-rl:
    margin-top:    1mm; /* from 'margin-top:    start 1mm' */
    margin-right:  2mm; /* from 'margin-right:  before 2mm' */
    margin-bottom: 3mm; /* from 'margin-bottom: end 3mm' */
    margin-left:   4mm; /* from 'margin-left:   after 4mm' */

  and when writing-mode is horizontal-tb(ltr):
    margin-top:    2mm; /* from 'margin-right:  before 2mm' */
    margin-right:  3mm; /* from 'margin-bottom: end 3mm' */
    margin-bottom: 4mm; /* from 'margin-left:   after 4mm' */
    margin-left:   1mm; /* from 'margin-top:    start 1mm' */

> 
> To extend this to inside/outside scenario, we could say:
> 
>   margin-left: of-recto 1em;
> 
> Does this make sense in English? Maybe "in-recto" is the correct preposition, I'm not sure, but I hope you get the idea.

The 'left of-recto' means 'inside' when page-progression is ltr but 'outside' when rtl. I want use 'inside' and 'outside' regardless of ltr or rtl.

I prefer:
    margin-right: outside 5mm;
    margin-left:  inside 7mm;

  and this can be also written as:
    margin-left:  outside 5mm;
    margin-right: inside 7mm;

  In the right page, the used values will be:
    margin-right: 5mm;
    margin-left:  7mm;
  and in the left page, the used values will be:
    margin-left:  5mm;
    margin-right: 7mm;

(Note: the outside|inside flags have to be kept in the computed values.)

-- 
MURAKAMI Shinyu
http://twitter.com/MurakamiShinyu
Antenna House Formatter:
http://www.antennahouse.com

Received on Wednesday, 27 October 2010 20:30:16 UTC