(現状を鑑みて)CSSでのtableの中央ぞろえは実用できますか?

[上に] [前に] [次に]
摩楠 [E-Mail] 1999/08/21(土) 05:40:04
HTML 4.0 Strict でテーブルの中央ぞろえを行いたいと思っています。しかしIE5やNC4.51の表示結果を見るに、単にtable{text-align:center}ではテーブル内の各要素が内部でそれぞれ中央ぞろえになるだけです。仕様の訳を見ると、margin-leftとmargin-rightにautoを指定すれば要素は親要素内部でセンタリングされることになるはずだと思うのですが、両ブラウザともそうなっていないように見えます。これは実装が追いついていないと諦めて、tableを使うページだけTransitionalにするべきなのでしょうか?それとも他に方法があるのでしょうか?

みずか [E-Mail] [HomePage] 1999/08/22(日) 21:20:02
はじめまして。
実際に仕様書を見たわけではないので、これで正しいのかどうかわかりません。
なので、参考程度にして下さい。

セル内の要素を真ん中にする場合
td,th  {text-align:center;}

テーブルを真ん中にする場合
<div style="text-align:center">
<table>
<tr><td></td><td></td><td></td></tr>
</table>
</div>

もしもページ全体が、真ん中の場合は
<body style="text-align:center;">というのも
つかえます。


ただし、Strictで使えるかどうかが心配なので、
参考程度にして下さい。

摩楠 [E-Mail] 1999/08/25(水) 02:48:13
[[解決]]
「テーブルを真ん中にする場合」で期待通りの動作になりました。DIVがTABLEを含むのは問題ないですし、ブラウザが仕様通りに対応するまでこれでいけそうです。ありがとうございました。
しかし、HTML3.2を使ってた頃にそういえば似たようなことを(ただしその時はALIGN=でしたが)してたんですよね。灯台もと暗しでした。

パンチが 1999/08/25(水) 04:00:59
><div style="text-align:center">
これはあまり意味なし(cssをどうのこうのという視点で)。

単に<div align=center>でよい。安定もする。

摩楠 [E-Mail] 1999/08/28(土) 01:39:12
このまんま入れただけでは確かに3.2と思想的になんも変わりませんね。そういうのが必要な場合もあるかとは思いますが、私としては実際は適当にclassを設定してそれに外部から指定を加えると思います。

本当にalignで済ましてしまうとstrictでなくなりますので…。

RW [E-Mail] [HomePage] 1999/08/29(日) 20:46:35
CSSのtext-alignで整列させることができるのは指定された要素内部のインライン要素と文字列だけです。

テーブルの中央寄せがしたければCSS2から導入されたdisplay:inline-tableで表をインライン整形モデルに従わせる必要があるでしょう(当然サポートしているブラウザはありませんが)。

ちなみにNN5(仮)ではtext-alignに-moz-centerという表をセンタリングするための属性値を用意していますが、どうも納得いきません。

[上に] [前に] [次に]