• ベストアンサー

cssの中にテーブルを入れると崩れる。

html+CSSでページを作っていて 途中にテーブルを入れると レイアウトが崩れます。 テーブルのすぐ右横に次の見出しが来てしまったりします。 どうしたらいいでしょうか? <body> <div id="wrapper"> <div id="header"> ~略~ </div> <div id="contents"> <h2> ●●● </h2> <h3> ●●● </h3> 例えばココに<table>~</table> <h2> ●●● </h2> <h3> ●●● </h3> </div> </div> </body> とするとこのテーブルの真横に次の<h2>が来てしまいます。 テーブルの用途は料金表などで、レイアウト的に使うのではありません。 どなたかご教授下さい。 宜しくお願いいたします。

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

tableはブロック要素ですから、前後に余白が置かれるはずです。 ブロック要素かインライン要素かは、HTMLを書く最も基本的な部分です。 ただ、tableは、他のブロック要素の幅がその親のブロックの内幅全体なのに比較して伸縮すること。  でも改行されることに変わりはありません。  ただし、table要素にfloatを設定すると、当然続くデータは回り込みます。 Q: tableに何か指定していませんか?  不思議なのは、その場合には上端がそろうはずですが、添付されている画像では、上が開いている。  なお、位置を合わせるための<br>や<p>要素は書くべきではありません。

yoshino0724
質問者

補足

ご回答ありがとうございます。 tableはdivで囲ってフォントの大きさのみ指定しています。 >位置を合わせるための<br>や<p>要素は書くべきではありません。 わかりました(^0^)

その他の回答 (2)

noname#119957
noname#119957
回答No.3

css table {clear:both;}

回答No.1

>テーブルのすぐ右横に次の見出しが来てしまったりします。 テーブルと見出しの間に「<BR>」による「明示的な改行」を入れましょう。 テーブルの直後に「明示的な改行」が無い場合、テーブルの右に「まだ表示出来る余白」があれば、続きの部分がその余白に表示される場合があります。