• ベストアンサー

入れ子にしたテーブルをheight100%にする

お世話になります。 以下のソースで、table2の高さを100%にしたいです。 この書き方では、firefoxではうまく表示できるのですが、 IEではだめでした。どこがいけないのでしょうか?? ---------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <style type="text/css"> <!-- html {height:100%;} body {height:100%;} .th100 {height:100%;} --> </style> </head> <body> <table width="600" border="1" cellpadding="0" cellspacing="0" class="th100"> <tr> <td width="300" rowspan="2"> 長いテキスト </td> <td height="50"><table width="300" height="50" border="0" cellpadding="0" cellspacing="0" bgcolor="#000000"> <tr> <td>table1</td> </tr> </table></td> </tr> <tr> <td><table width="300" border="0" cellpadding="0" cellspacing="0" bgcolor="#999999" class="th100"> <tr> <td>table2</td> </tr> </table></td> </tr> </table> </body> </html>

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

  • ベストアンサー
  • picklse
  • ベストアンサー率65% (26/40)
回答No.3

こちらではうまく再現できないのですが、CSSの設定を次のようにしてみてください。 body {height:100%; margin: 0; padding: 0;} .th100 {height:100%;} これでも駄目なら。 table, tr, td {margin: 0; padding: 0;} を追加してみる。

awocamel
質問者

お礼

たびたびありがとうございます。 とても心苦しいのですが、上記CSSでもうまく動きませんでした… table2の高さが、一画面の高さまでにしかならず、 テキストが一画面より長い場合、余白が出来てしまうようです。 ウインドウを小さくすると、table2の高さも小さくなります。 height100%がtdに対してではなく画面(ブラウザ)のサイズになってしまっているのでしょうか。

その他の回答 (4)

  • kosa
  • ベストアンサー率25% (379/1464)
回答No.5

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "​http://www.w3.org/TR/html4/loose.dtd">​ ↑ これが不要です。

awocamel
質問者

お礼

回答ありがとうございます。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "​http://www.w3.org/TR/html4/loose.dtd">​ を削除したのですが、table1の上下に空白が出来てしまいます…

回答No.4

テーブルのセルの高さを指定したい場合は、そのセルが属するtrタグの高さを変更する必要があります。 ですので、table2の高さを変更するだけでなく、そのテーブルが入っているセルのtrタグの高さも100%にしてみてください。

awocamel
質問者

お礼

回答ありがとうございます。 すみません、trタグの高さを100%にしたのですが、変化がありませんでした。 table2の高さがウインドウに対して高さ100%になってしまいます。 table2の入っているセルに対して高さ100%にするにはどうしたらよいのでしょうか??

  • picklse
  • ベストアンサー率65% (26/40)
回答No.2

<td><table width="300" border="0" cellpadding="0" cellspacing="0" bgcolor="#999999" class="th100"> ↓↓ <td class="th100"><table width="300" border="0" cellpadding="0" cellspacing="0" bgcolor="#999999" class="th100"> これでいかがでしょう。 当方IE6、Firefox1.5で確認してます。

awocamel
質問者

お礼

回答ありがとうございます! 教えていただいた方法を試してみましたところ、 テキストが短い場合にはうまくいってくれるのですが テキストが長くなると(一画面より長くなると?) table1とtable2の上下に余白が出来てしまいます。 どうしてこのようなことになってしまうのでしょうか… せっかく教えていただいたのに申し訳ないです。

awocamel
質問者

補足

足りなかった情報をこちらで補足させていただきます。 環境はIE6、Firefox1.5です。 「長いテキスト」というのは60行くらい(一画面より長い)です。

  • akuhijrwq
  • ベストアンサー率35% (381/1064)
回答No.1

<table width="300" border="0" cellpadding="0" cellspacing="0" bgcolor="#999999" height="100%"> こうでもだめなんですか? あくまでcssにこだわりたいのかしら?

awocamel
質問者

お礼

回答ありがとうございます! 教えていただいた方法を試してみたのですが、cssの場合と変わりませんでした。すみません。 ちなみにcssでなくても構いません。 過去の質問を見るとみなさんcssでやってらっしゃったので、そのようにしてみました。

関連するQ&A