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

CSS の left/right /top/bottom と縦書きの関係に ついて:予約語オーバーロードとプリプロセッサディレクティブ

From: Takayuki Akimoto <akimoto.takayuki@gmail.com>
Date: Mon, 12 Jul 2010 23:48:35 +0900
Message-ID: <AANLkTilxhVOW3h0Vcu5lnHYN7FXMUFcR3qpkGCq1k_On@mail.gmail.com>
To: 小澤 郁人 <f-ozawa@b-s-c.co.jp>
Cc: Ishii Koji <kojiishi@gluesoft.co.jp>, MURAKAMI Shinyu <murakami@antenna.co.jp>, "public-html-ig-jp@w3.org" <public-html-ig-jp@w3.org>
村上 議長

>> と言うことは、directional-mode: logicalというのは、言わば、
>> 「読み替え指令」のようなものでしょうかね。
>そうです。現実の必要性からのものです。

つまり、directional mode
の本質は、「回転」や「座標系変換」と言うより、キーワードの意味の再定義でしょうか。C++のオペレータ(演算子)オーバーロードの概念にも近いかもしれませんね。

だとすれば、下記のようなイメージでもよいのではないでしょうか。

提案:位置関係予約語のオーバーロード(※こんな感じ)

override.direction { direction1: LEFT; direction2: RIGHT; direction3:
TOP; direction4: BOTTOM}; // 欧州語(デフォルト)、左右上下の順に指定
override.direction { direction1:RIGHT; direction2:LEFT;
direction3:TOP; direction4:BOTTOM}; // 中東語R2L(右と左が交換される)
override.direction { direction1:TOP; direction2:BOTTOM;
direction3:RIGHT; direction4:LEFT}; // 日本語縦書き
override.direction {direction1:TOP; direction2:BOTTOM;
direction3:LEFT; direction4:RIGHT }; // 蒙古語縦書き

まあ、ただ、これなら、direction関係の予約語だけでなく、CSS全体にまでキーワード・オーバーライドの仕組みを拡張するか、
C言語の、
#define identifier replacement-token-list
のような、プリプロセッサディレクテブの導入をCSS3仕様に提案してしまったほうがよいのかも知れませんが・・・

thoton global computing
秋元
taka-akimoto@thoton.co.jp



2010年7月12日22:17 小澤 郁人 <f-ozawa@b-s-c.co.jp>:
> 小澤と申します。
>
> 本件、少々、理解しづらくなってきましたのでご質問を。
> 例えば、
>
> <div style="writing-mode:tb-rl; direction-mode:logical;">
> <hr style="width:100%;" />
> 第1章 桃、上流より流れ来ること
> <hr style="width:100%;" />
> 昔々あるところに・・・
> </div>
>
> といった場合、今の内容ですと、
> hrは画面に向かって横方向にレンダリングされるのでしょうか。
> それとも縦方向でしょうか。
>
> #OSC 2010 KyotoでW3Cのブースにお邪魔した際に、
> #いろいろ話を聞き、出来る範囲で協力できれば、と思い、筆を取りました。
> #大した知識はありませんが、今後ともよろしくお願いします。
>
>
>
> --Ishii Koji<kojiishi@gluesoft.co.jp> wrote:
>>> すでに、アラビア語やヘブライ語のWebサイトでは、text-align: right を
>>> 右寄せに、margin-right を右インデントとして使っています。
>>
>>これは知りませんでした。それであれば、私のゴールは互換性ですので、村上さんに賛
> 成です。
>>
>>ご教示、ありがとうございました。
>>
>>
>>-----Original Message-----
>>From: MURAKAMI Shinyu [mailto:murakami@antenna.co.jp]
>>Sent: Monday, July 12, 2010 11:37 AM
>>To: public-html-ig-jp@w3.org
>>Cc: Ishii Koji; Takayuki Akimoto
>>Subject: Re: CSS の left/right/top/bottom と縦書きの関係について
>>
>>Takayuki Akimoto <akimoto.takayuki@gmail.com> wrote on 2010/07/12
>>4:24:37
>>> >directional-mode: logical をCSS仕様に入れることは、CSS3縦書きを
>>> >使いやすいものにすることと、現在登場しつつある縦書きEPUBビューア
>>> >などのHTML/CSSの縦書き実装(縦書きでmargin-leftが上を指す)と、
>>> >CSS3縦書きとが互換性のあるものにするために意味があります。
>>>
>>> と言うことは、directional-mode: logicalというのは、言わば、
>>> 「読み替え指令」のようなものでしょうかね。
>>> 「左」と書いて、「上」と読ませる、
>>> 「右」と書いて、「左」と読ませるので、
>>> 「すり鉢」と書いて、「あたり鉢」と読ませる以上の強引さをも
>>> 感じますが、有用性が高いことは理解しました。
>>
>>そうです。現実の必要性からのものです。
>>
>>| block-flow: rl (右縦書き:日本語など)
>>| =====================================
>>| logical left   = physical top
>>| logical right  = physical bottom
>>| logical top    = physical right
>>| logical bottom = physical left
>>| logical width  = physical height
>>| logical height = physical width
>>
>>この対応表で logical left = physical top などと書いたのは、
>>block-flow: rl(右縦書き)のとき、
>>directional-mode: logical における margin-left は
>>directional-mode: physical(CSSでの標準)での margin-top に
>>対応するという意味です。
>>logical left などの用語を提唱しているわけではありません。
>>
>>CSSで方向を論理的に表す用語についてはCSSWG内で提案されている次のものを
>>使うのがよいと思います:
>>http://lists.w3.org/Archives/Public/www-style/2008Feb/0294.html
>>
>>
>>Ishii Koji <kojiishi@gluesoft.co.jp> wrote on 2010/07/11 21:30:03
>>> > この定義について考えなおしてます。'top' と 'bottom' はたぶんOKだけど
>>> > 'left' と 'right' は右から左(RTL)の書字方向のとき、混乱しそう。
>>> > 次のようにしたほうがよさそうです:
>>>
>>> この「混乱しそう」と思われたシナリオを教えていただけますでしょうか? RTLネイ
> ティブではないので感覚で判断はできませんが、原理的には論理プロパティと同じに扱っ
> た方が良い気がしますし、RTLでtext-align:leftが右になる、という部分を見ても、その
> 方が論理的な指示になるような気がします。
>>
>>すでに、アラビア語やヘブライ語のWebサイトでは、text-align: right を
>>右寄せに、margin-right を右インデントとして使っています。
>>もし directional-mode: logical で、left と right が逆になるとすると
>>それを使うスタイルシートでは、text-align: left で右寄せ、margin-left
>>で右インデントを指定することになります。
>>それを directional-mode: logical をサポートしないブラウザで表示すると
>>スタイルシートの意図とは違った結果になってレイアウトが崩れます。
>>それでは結局、directional-mode: logical はアラビア語やヘブライ語では
>>使えないということになってしまいます。
>>
>>また、縦書きの中で、RTLのテキストがあったとき、その部分は下から上に
>>表示されます(縦書きの中のLTRの欧文が上から下に表示される逆)。
>>既存のブラウザをベースにして、directional-mode: logical での縦書きを
>>実装するような場合に、縦書きでは常に 'left' が上を指すようにするなら
>>簡単ですが、direction プロパティが ltr なら上、rtl なら下と切り替え
>>なくてはならないのでは複雑になります。
>>インライン要素ごとに ltr と rtl が切り替わるときに、行の中で 'left' の
>>向きが一定しないというのは、混乱しやすいと思います。
>>
>>
>>--
>>村上 真雄 (MURAKAMI Shinyu)
>>http://twitter.com/MurakamiShinyu
>>Antenna House Formatter:
>>http://www.antenna.co.jp/AHF/
>>http://www.antennahouse.com
>>
>>
>>
>
>
Received on Monday, 12 July 2010 14:49:08 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 12 July 2010 14:49:09 GMT