W3C home > Mailing lists > Public > www-style@w3.org > October 2010

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

From: MURAKAMI Shinyu <murakami@antenna.co.jp>
Date: Thu, 28 Oct 2010 05:29:27 +0900
To: Koji Ishii <kojiishi@gluesoft.co.jp>
Cc: Hakon Wium Lie <howcome@opera.com>, John Daggett <jdaggett@mozilla.com>, David Hyatt <hyatt@apple.com>, "L. David Baron" <dbaron@dbaron.org>, "www-style@w3.org" <www-style@w3.org>, Yasuo Kida <kida@apple.com>
Message-Id: <20101028052926.C955.C598BCD7@antenna.co.jp>
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 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:33 GMT