W3C home > Mailing lists > Public > public-html-ig-jp@w3.org > July 2010

Re: CSS の left/right/top/bottom と縦書きの関係について

From: MURAKAMI Shinyu <murakami@antenna.co.jp>
Date: Sat, 10 Jul 2010 11:47:19 +0900
To: "public-html-ig-jp@w3.org" <public-html-ig-jp@w3.org>
Message-Id: <20100710114719.A67A.C598BCD7@antenna.co.jp>
Forwarded by MURAKAMI Shinyu <murakami@antenna.co.jp>
----------------------- Original Message -----------------------
 From:    Takayuki Akimoto <akimoto.takayuki@gmail.com>
 To:      MURAKAMI Shinyu <murakami@antenna.co.jp>
 Cc:      Ishii Koji <kojiishi@gluesoft.co.jp>,
          "public-html-ig-jp@w3.org" <public-html-ig-jp@w3.org>
 Date:    Sat, 10 Jul 2010 11:25:49 +0900
 Subject: Re: CSS の left/right/top/bottom と縦書きの関係について
----

みなさん、こんにちは。

ソトンの秋元です。

> 'directional-mode: logical' が指定されたときは方向を示す語
> left/right/top/bottom/width/height を次のように論理的に解釈:

村上さんの議論について、考えたみたのですが、

名称:強制回転角度(forcible-rotation)
値:角度(実数値)

を導入したらいかがでしょうか。

縦書き表示にしたい場合、

forcible-rotation = 90(degree)

で、方向や位置関係を表す全ての指定が常に90度回転される。

つまり、

→は↓:(rightward+90度)=downward
↓は←:(downward+90度)=leftward
←は↑:(leftward+90度)=upward
↑は→:(upward+90度)=rightward

として解釈される。

一方、欧文等、横書きの場合(デフォルト)、

forcible-rotation = 0

で強制回転なし。無論、
rightward+0=rightward、leftward+0=leftward、
downward+0=downward、upward+0=upward
なので。

問題の本質は、論理/物理の対立というより、
回転にあるように思いました。

横書き:補正角度=0度
縦書き:補正角度=90度

つまり、縦書きと横書きの違いは、
究極的には、この補正角度の値の違いだけとも
言えるような気がします。

みなさんも少し考えてみて下さい。違っていたらすみません。

ソトン・グローバル・コンピューティング株式会社
秋元貴之
taka-akimoto@thoton.co.jp




2010年7月10日2:34 MURAKAMI Shinyu <murakami@antenna.co.jp>:
> Ishii Koji <kojiishi@gluesoft.co.jp> wrote on 2010/07/07 14:49:11
>> 村上さん、ありがとうございます。英語MLで「あってもいいかな」レベルまで来たのに、日本で賛成が0だったので、ちょっとめげていたところで、非常に心強いです。
>>
>> 実装者にとっては慣れ親しんだ方法ですので、実例は多いと思います。また、text-align:leftの「left」とmargin-leftの「left」が同じ方向を指すので、わかりやすいと思う人は一定数はいると思っています。
>>
>> もちろん逆の方もいらっしゃるので、あくまでモード切替ではありますが、複数の正解があって、人によって支持する解が違う場合には、オプションとする、というのは、正しい方向性だと思っています。
>
> 賛成です。
> 英語ML www-style に書きました:
> http://lists.w3.org/Archives/Public/www-style/2010Jul/0127.html
> (以下その主な内容)
>
> 石井さんの 'directional-mode' の提案を受け入れたい。
>
>  Name:           directional-mode
>  Value:          physical | logical
>  Initial:        physical
>  Applies to:     all elements
>  Inherited:      yes
>
> 'directional-mode: logical' が指定されたときは方向を示す語
> left/right/top/bottom/width/height を次のように論理的に解釈:
>
>  left   = start  (インライン方向での先頭側)
>  right  = end    (startの反対側)
>  top    = before (ブロック方向での先頭側)
>  bottom = after  (beforeの反対側)
>  width  = logical-width  (インライン方向の寸法)
>  height = logical-height (ブロック方向の寸法)
>
>
> (方向のキーワードが左横書き以外で標準的な意味と違ってきておかしくないか
> という意見に対して)
>
> すでにそういう例がある。Unicode標準仕様では文字の名前に
> LEFT PARENTHESIS のようなものがある。この LEFT 文字はRTLにおいては
> 右側になるし、縦書きでは上側になる。Unicodeの文字の名前の LEFT というの
> は論理的な方向であって物理的ではない。
> なぜCSS標準でそれができない?
>
> 論理方向モードは縦書きの電子書籍ビューアにとって重要。
> 現在いくつかのEPUBビューアはコンテンツ(XHTML+CSS2)を縦書きで
> 表示することができてその場合 'margin-left' は上マージンとして
> 扱われる。
>
> そのような実装の例:
>  http://blog.print.cssj.jp/?itemid=212
> ドキュメント
>  http://blog.print.cssj.jp/?itemid=197
> (「縦書きのスタイル」のところが参考になる)
>
> これは典型的な縦書き対応のEPUBあるいはHTML+CSSの実装である。
> 私はこれが将来のCSS3 Text Layout標準と互換性があるべきだと信じる。
> そうでないと、CSSの縦書きの標準化は失敗するだろう。
> だから 'directional-mode: logical' のしくみをCSS3 Text Layout
> で定義する必要がある。
>
> 典型的な縦書きスタイルシートは次のようなものになるだろう:
>
>  :root {
>    block-flow: rl;
>    directional-mode: logical;
>  }
>  img { /* 画像の width と height は物理方向で */
>    directional-mode: physical;
>  }
>  ...
>
> これは縦書きの電子書籍ビューアのデフォルトスタイルシートになりえる。
>
> (以上、www-style に書いたことでした)
>
> --
> 村上 真雄 (MURAKAMI Shinyu)
> http://twitter.com/MurakamiShinyu
> Antenna House Formatter:
> http://www.antenna.co.jp/AHF/
> http://www.antennahouse.com
>
>
>
--------------------- Original Message Ends --------------------
Received on Saturday, 10 July 2010 02:48:06 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Saturday, 10 July 2010 02:48:06 GMT