次のようなHTMLを書きました。


==以下HTML==
<h2>見出2の文章</h2>
<table>
<tr>
<td>
<h3>見出し3の文章</h3>
(以下省略)
==以上HTML==

これをIEで表示させると、<h2>と<table>の間に、どうしても謎の1行(空行)が表示されてしまいます。tableによる空白やCSSによるマージン等ではありません。純然たる「行」です。

==以下IEでの表示==
見出し2の文章
 
見出し3の文章
==以上IEでの表示==

なぜでしょうか。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2007/09/28 12:15:08
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:b-wind No.3

回答回数3344ベストアンサー獲得回数440

ポイント11pt

正確なソースがないと分からないのですが、

table の中身に全角スペースとか混入していないですか?

その他の回答2件)

id:memo77 No.1

回答回数238ベストアンサー獲得回数20

ポイント35pt

表示では空行があるように見えますが、メモ帳にコピペすると行はないのがわかります。

デフォルトのmarginですね。

id:crashtruck

marginは、CSSにて、<h2>にも

にも"0"と指定してあるのですが…

2007/09/27 08:35:12
id:Marine-Blue No.2

回答回数238ベストアンサー獲得回数12

ポイント34pt

DOCTYPEやHTMLのバージョンなども弄った上で検証してみたけど再現しないですねぇ・・・。

原因は他の部分にあるかもしれません。宜しければもう少し問題のあるソースを見せて欲しい。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;Charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<title></title>
<style type="text/css">
<!--
h2 { margin:0px; }
table { border:1px outset; }
td { border:1px inset; }
-->
</style>
</head>
<body>
<h2>見出2の文章</h2>
<table frame="border">
<tr>
<td>
<h3>見出し3の文章</h3>
<p>
ほんぶん
</p>
</td>
</tr>
</table>
</body>
</html>
id:b-wind No.3

回答回数3344ベストアンサー獲得回数440ここでベストアンサー

ポイント11pt

正確なソースがないと分からないのですが、

table の中身に全角スペースとか混入していないですか?

  • id:GoldenDawn
    <h2 style="margin:0">見出2の文章</h2>
    にしたら隙間は無くなりましたが。
  • id:tezcello
    だとしたら、「行」ではなく「マージン」ですよね。
    単に、IE のデフォルトのマージンが大きすぎるだけとか...
    CSS ファイルの最初の方で、
    h1, h2, h3, h4, h5, h6 {margin: 0px;}
    とでもしておくとか。
  • id:memo77
    >marginは、CSSにて、h2にもtableにも0と指定してあるのですが…

    他の方も書いていますが、h1のmarginも0にしてみてはいかがでしょうか。
  • id:tezcello
    >marginは、CSSにて、h2にもtableにも0と指定してあるのですが…
    その指定が効いているかを確認してみたらどうですか?
    例えば、margin: 30px; とかの極端なものにしてみると判り易いです。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません