- From: Ishii Koji <kojiishi@gluesoft.co.jp>
- Date: Sat, 10 Jul 2010 04:35:06 -0400
- To: Takayuki Akimoto <akimoto.takayuki@gmail.com>, MURAKAMI Shinyu <murakami@antenna.co.jp>
- CC: "public-html-ig-jp@w3.org" <public-html-ig-jp@w3.org>
秋元さん、ご意見ありがとうございます。 実は英語MLでそのような可能性の提示もありました。文字のフローとの関係を切り離し、CSS Transform http://www.w3.org/TR/css3-2d-transforms/ http://builder.japan.zdnet.com/sp/css-firefox-safari/story/0,3800083423,20388352,00.htm と類似の考えを持ちこんでも、秋元さんご指摘のように、元の問題を解決できると思います。 この場合、 * フローと切り離される分、仕様としての独立性が高まり、シンプルになる * 文法としてCSS Transformと類似にすることで、製作者が覚えやすくなる * フローを変えずに切り替えることが便利な場面があるかもしれない というメリットがある半面、 * Bi-diを考えると左右反転も必要になる * フローと切り離されるため、フローを切り替えるたびに指定しなければならない * フローとの関係を製作者が覚えなければならない(縦書きは90度、bi-diは左右反転、など) * 「45度」などが指定されたらどうするかを規定しなければならない というデメリットがあるかと思います。 論理プロパティの策定も進んでいらっしゃるようなので、一條さんもご指摘の通り、「論理・物理を個別プロパティでも設定できるし、要素単位でその内側をすべて切り替えるモード切替としても使える」という今の提案の方が、理解しやすいし使いやすいかと個人的には思っていますが、上記のデメリットをうまく解決できる案があれば、検討の価値があるご提案だと思います。 -----Original Message----- From: Takayuki Akimoto [mailto:akimoto.takayuki@gmail.com] Sent: Saturday, July 10, 2010 11:26 AM To: MURAKAMI Shinyu Cc: Ishii Koji; public-html-ig-jp@w3.org 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 > > >
Received on Saturday, 10 July 2010 08:35:41 UTC