Re: CSS 2.1のプロパティのうち縦書きによって影響を受けるもの

"MURATA Makoto (FAMILY Given)" <eb2m-mrt@asahi-net.or.jp> wrote on
2010/06/22 11:30:42
> 有難うございます。結局、以下のようなリストになります。
> 
> このリストは、CSS WGに送るしかないのですが、作ってみて絶望的な気分
> になります。CSS 2.0からCSS 2.1までにかかった時間を考えると、これらの
> プロパティが縦書き対応になるのは何十年もかかるのではないかと思いま
> す。本当に縦書きがほしいのは日本・台湾・香港だけだし、それらの国か
> らCSS WGに盛大に参加している訳でもない。
> 
> 'background-position' 
> 'border-top' 'border-right' 'border-bottom' 'border-left' 
> 'border-top-color' 'border-right-color' 'border-bottom-color' 'border-left-color' 
> 'border-top-style' 'border-right-style' 'border-bottom-style' 'border-left-style' 
> 'border-top-width' 'border-right-width' 'border-bottom-width' 'border-left-width' 
> 'border-width' 
> 'border'
> 'left' 
> 'margin-right' 'margin-left' 
> 'margin-top' 'margin-bottom' 
> 'margin' 
> 'padding-top' 'padding-right' 'padding-bottom' 'padding-left' 
> 'padding' 
> 'right' 
> 'top' 
> 'caption-side' 
> 'text-align' 
> 'clear' 
> 'float' 
> 'height' 
> 'width' 
> 'max-height' 
> 'max-width' 
> 'min-height' 
> 'min-width' 
> 'page-break-after' 
> 'page-break-before' 
> 'vertical-align' 

次のプロパティも関係するかもしれません。

border-spacing プロパティ
http://www.w3.org/TR/CSS2/tables.html#propdef-border-spacing

テーブルの分離ボーダーモデルでの隣接するセルどうしのアキを指定するもので
すが、2つの<length>値が指定されたとき、1番目が水平方向、2番目が垂直方向
とCSS2.1仕様には書かれています。しかし、縦書きになると table column と
table row の水平・垂直方向が横書きの場合とは逆になるので、1番目の値は 
column 進行方向、2番目は row 進行方向と論理的に解釈するべきかもしれません。
(CSS3 で明記されるべきです)

このほか、CSS2.1 では横書きしか想定していないために、説明の中で width、
height、horizontal、vertical という語が使われているところは、縦書きの場合
にも物理的な水平方向、垂直方向となるのか、それともインライン進行方向、
ブロック進行方向と論理的に解釈するべきなのか、判断が必要です。
ほとんどの場合はその文脈から判断がつきます。

例えば、Collapsing margins について
http://www.w3.org/TR/CSS2/box.html#collapsing-margins

	In CSS 2.1, horizontal margins never collapse.
	Vertical margins may collapse between certain boxes: ...

と書かれていますが、この horizontal と vertical がインライン進行方向、
ブロック進行方向と論理的に解釈するべきものであることは、自明だと思います。
(そうでないと縦書きで使い物になりません)

CSS3 Basic Box Model では、margin のような基本的なプロパティについて、
縦書きも考慮した定義となるように、直されています。
http://www.w3.org/TR/css3-box/

	Note: The model in this specification differs from the model
	described in the CSS level 2 specification [CSS21], because (1)
	it is generalized to apply also to vertical text...

marginについては、
http://www.w3.org/TR/css3-box/#margins

	Percentages: 	width* of containing block 
	...
	*) if the containing block is horizontal, otherwise the height 
	...
	Only margins of block-level  boxes can collapse. 

というように、縦書きにも対応する定義となってます。
ただし、これも未完成のドラフト仕様なので、
	[To do: copy from CSS2 [CSS21] and generalize to vertical text] 
というコメントが float と clear プロパティのところに残っていたりします。


CSS Level 2 ではじめから、縦書きへの拡張を想定した記述がされるのが理想的
だと思うのですが、説明を単純にするためか、そのようにはなってません。
CSS3 での記述では CSS3 Basic Box Model のように、縦書きも考慮するという
方針はあるはずなのですが、あまり徹底もされていません。

しかし、CSS3の縦書きを使っている立場からすると、CSS 仕様の記述の
width や height という語が物理的な水平方向や垂直方向なのか論理的なもの
なのか判断に迷うところはそれほど多くはないので、そのような注意が必要な
ところだけをまとめるので充分なのではないでしょうか。

MSIEでのwriting-modeの動作仕様について解説しているIEBlogの次の記事も
参考になると思います:
The CSS Corner: writing-mode
http://blogs.msdn.com/b/ie/archive/2009/05/29/the-css-corner-writing-mode.aspx
日本語訳も:
http://hebikuzure.spaces.live.com/blog/cns!7B8DEE551B8CBD04!357.entry


-- 
村上 真雄 (MURAKAMI Shinyu)
http://twitter.com/MurakamiShinyu
Antenna House Formatter:
http://www.antenna.co.jp/AHF/
http://www.antennahouse.com

Received on Tuesday, 22 June 2010 04:10:14 UTC