プロが教えるわが家の防犯対策術!

よろしくお願いします。

floatを使ってテーブルを横に複数個並べているのですが、全体が左に寄ってしまいます。
並べたテーブルすべてを中央に配置するにはどうしたらよいのでしょうか。
テーブルとテーブルの間の隙間を固定にしたいので、マージンは固定です。

■HTML
<body>
<table><tr><td>TEST1</td></tr></table>
<table><tr><td>TEST2</td></tr></table>
<table><tr><td>TEST3</td></tr></table>
</body>

■CSS
table{
  float: left;
  width: 100px;
  border: 1px solid #000000;
  margin: 0px 10px 0px 10px;
}

よろしくお願いいたします。

A 回答 (2件)

----パターン1


table{
float: left;
width: 100px;
border: 1px solid #000000;
margin: 0px 10px 0px 10px;
}
div{/*たぶん詳細度が弱いので、適切なセレクタにしてください。*/
margin-left:auto;/*ブロック要素の中央ぞろえは幅を決めて、左右のmarginをautoが定石です。*/
margin-right:auto;
width:360px
}

<div><!--中央寄せしたいテーブルを囲みます。*/-->
<table><tr><td>TEST1</td></tr></table>
<table><tr><td>TEST2</td></tr></table>
<table><tr><td>TEST3</td></tr></table>
</div><!--閉じます-->


---パターン2
質問の内容のhtmlそのままでcssだけで解決すると
body{
text-align:center;/*インライン要素にのみ有効の中央揃え*/
}
table{
display:inline-block;/*フロートではなくinline-blockで並べます*/
width: 100px;
border: 1px solid #000000;
margin: 0px 10px 0px 10px;
}
td{
text-align:left;/*ほっておくとtdまで中央ぞろえになる為*/
}
    • good
    • 0
この回答へのお礼

返信ありがとうございます。
パターン2を使わせていただきました。
助かりました。ありがとうございました!

お礼日時:2013/02/07 13:35

tableを配置に使用するのは?です。


あくまで本当の表として・・
 floatは本来、画像などのデータの周囲にテキストを回りこませるためのものでこの様な用途には不向きです。特に中央配置は
<div class="table3">
 <div>
  <table></table>
 </div>
 <div>
  <table></table>
 </div>
 <div>
  <table></table>
 </div>
</div>
 のように一つ一つの表と全体をdivで囲んで、
div.table3{width:100%;margin:0 auto;text-align:center;}
div.table3 div{display:inline-block;width:30%;position:relative;}
div.table3 div table{width:100%;}
とか・・・

いっそのこと、全体をtableに入れるとか・・
    • good
    • 0
この回答へのお礼

返信ありがとうございます。
こちらでも実行してみました。無事配置されました。
ありがとうございました!

お礼日時:2013/02/07 13:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!