• ベストアンサー

複数のテーブルを無条件に中央寄せする方法

テーブルを無条件で中央寄せする方法を知りたいです。テーブルのセルの中にテーブルを作ったり・・・などしているので、是非ともマクロで全てのテーブルを中央寄せする方法を知りたいのです。 table{text-align:center;} でいいんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • partita
  • ベストアンサー率29% (125/427)
回答No.1

よくないです。 text-alignはインライン要素に対して適用するものです。table{text-align:center;}とすると、テーブルの中のテキストや画像がセンター揃えになるだけで、tableそのものは画面中央に配置されません。 tableはブロック要素だからです。 おおまかに言うと、ブロック要素は「箱」みたいなものです。table、p、div、ulなどです。インライン要素はその「箱」に含まれるもので、テキスト・画像とおぼえておけばよいと思います。 「箱」そのものをセンターに揃えるためには margin:auto; を使用します(ただしWinIE5.5以前で適用されないのが難点←ブラウザバグ)。 table {margin:auto;} を使用しないのなら <table align="center"> とする方法もあります。

その他の回答 (1)

回答No.2

まずはそれぞれの記述次第で対処方法が異なります。 とはいえ、みんな中央寄せされても問題ないのですよね!? という事で、 table{text-align:center;margin:auto;} これでまずは良いでしょう。 バグのブラウザもありますが、その動きを逆に利用して・・・。(という事で、本当はこの対処法は正しい方法ではないですが実用的な方法という事で・・・。) あとは逆に中央寄せされて困った処を、 改めて .classsample{text-align:left;}とでもすれば・・・。(もちろん当該箇所に class指定などが必要ですが。) ただ面倒かなぁ~というか問題になりそうなのは、 margin: は継承されませんが、 text-align: は継承されますので、 望まない部分まで中央寄せされたりして、 返って対処が大変だったりして・・・。 という事で、結局元の作り方次第なのでぇ~。 あまり大変な場合、1から作り直してテーブルを排除した方が楽な可能性もあったりして・・・。

moosa
質問者

お礼

みなさん多謝いたします

関連するQ&A