- ベストアンサー
HTMLで文とテーブルの間が空く理由と対策
- HTMLで文とテーブルの間が意図しない空欄ができる理由と対策について解説します。
- HTMLとCSSで作成したホームページで、文とテーブルの間に空欄ができる現象について説明します。
- 会社概要の<h2>タグと<table>タグの間に十数行の空欄ができる問題について、HTMLとCSSの観点から解決策を提案します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
全角スペースを使っているからでしょう。 TABにするか、削る。
その他の回答 (4)
- sweyuki
- ベストアンサー率48% (13/27)
十数行の空欄、と言うのは装飾上のスペースなのかテキストとしての改行なのか…。 改行が挿入されているのであれば、#2さんと#3のおっしゃるあたりが怪しいですね。 改行ではなく単純にスペースなのであれば、#1さんのおっしゃるmarginかもしくはline-heightあたり。paddingの可能性もありますが。 まあ、CSS完全にオフの状態でも出るのであれば改行<br>なんでしょうね。 ところで、#1さんがテーブルレイアウト云々と仰っていますが、こういった会社概要のコンテンツはテーブルで組むのはごく当たり前、正しい記述です。まぎれもなく「表」ですので。見せ方として全く異なる手法を用いる場合もありますが。 もしサイト全体をテーブルで組んでいるなら確かに問題ではあります。
お礼
CSSをオフにしてもなるので変だなぁとは思っていたんですが、テキスト上見やすくするスペースが犯人だとは・・・ あと、レイアウトはテーブルでは作成していません。 今のところ、ここだけをテーブルにする予定です。 回答ありがとうございました。
- outbrave
- ベストアンサー率60% (231/380)
ANo.2さんに賛同します。 □□□□□ <table class="table"> □□□□□□<tr> 以下、同様に全角スペースが入っていますので削除してください。
お礼
とても分かりやすい回答ありがとうございました。 これだけの情報で、解決法がわかるのはすごいです。 スペースには気をつけます。
- naokita
- ベストアンサー率57% (1008/1745)
NO.1さんのマージンではないとすれば、 CMSなどのシステム側でテキストの改行部分に br を混入するという素人仕様だからです。 表示されたHTMLを見れば、テーブルの各セル部分に br があるはずです。 テキスト部分の改行を反映しない設定にするか、 HTMLか書く場合には、改行をせずに1行に書くかの二択です。 1行とは、具体的には、 <h2>会社概要</h2><table class="table"><tr><th>社名</th><td></td></tr><tr><th>所在地</th><td></td></tr><tr><th>代表者</th><td></td></tr><tr><th>設立</th><td></td></tr><tr><th>資本金</th><td></td></tr><tr><th>従業員数</th><td></td></tr><tr><th>関連会社</th><td></td></tr></table>
お礼
分かりやすい説明とご回答ありがとうございました。 犯人は、必要のないところにあるスペースでした。
- makkie33
- ベストアンサー率28% (2/7)
CSSで、tableのmarginを設定していませんか? CSSのtableで margin:10px 10px 10px 10px; と言う記述がありませんか?(数字は適当です。) もしくは、 margin-top:10px; の様な記述です。 marginは、tableの外側の余白の設定なので、 これを「0」にすれば不自然な余白は無くなると思います。 参考までに 「会社概要」をtableの中に入れてしまえば、 このmarginに振りまわされる事はないのでは?と思いますが… そもそも、レイアウトするのにtableを使ってしまってるあたりで問題ですが…。
お礼
回答ありがとうございました。 テーブルのmarginには、デザインの関係上0px 0px 10px 0pxで設定しています。 また、h2にもmarginのbottomには設定していません。 CSSは外部ファイルでして、一回削除したりもしましたがHTMLが問題なのか、解決しませんでした。
お礼
回答ありがとうございました。 スペースを削ってみたら、きれいに改行がなくなりました。