tableのheight指定が効かない

このQ&Aのポイント
  • tableの高さを固定するためにheightとoverflowを指定しても、tableに記述したソース分の大きさになり、スクロールバーが表示されません。
  • 解決方法をご存知の方、よろしくお願いします。
  • 外部CSSの.sampleクラスにheightとoverflowの指定を行いましたが、効果が現れません。
回答を見る
  • ベストアンサー

tableのheight指定が効かない

tableの高さを固定したく、heightとoverflowを指定したんですが、 tableに記述したソース分の大きさ(高さ)になり、スクロールバーが表示されません。 /*----外部CSS----*/ .sample{ color: #ffffff; background-color: #000000; height: 500px; width : 90%; overflow:scroll; } /*----ソース-----*/ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> <meta http-equiv="content-style-type" content="text/css"> <link rel="stylesheet" type="text/css" hrefstyle.css"></head> <body> <table class="sample"><tbody><tr> <td class="a1"></td><td class="a0"></td><td class="a2"></td></tr><tr> <td class="a0"></td><td class="a0"> <div class="text">本文(heightが700pxくらいの内容)</div> </td><td class="a0"></td></tr><tr> <td class="a3"></td><td class="a0"></td><td class="a4"></td> </tr></tbody></table>                   ※tdのclassはテーブルのふちに用いてる画像を指定してあります。 </body> </html> 解決方法をご存知の方、よろしくお願いします。

  • HTML
  • 回答数5
  • ありがとう数6

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

  • ベストアンサー
  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.3

まず、 overflow:scroll; ← コロン小文字に ---------------- テーブル関連にoverflowバグもあるので、 テーブル自体にスクロールを付けるのではなく、 その外枠を作って中のコンテンツをスクロールさせる。 外枠より中のテーブルが大きければ全体を見る為にスクロールさせる考え方。(コンテンツは、テーブルでも良いですが・・・) <div style="height:500px; width:90%; overflow:auto;"> コンテンツ </div> ---------------- >※tdのclassはテーブルのふちに用いてる画像を指定してあります。 これも間違った方法で、何の為のテーブルなのでしょう・・・ テーブルは表です。画像を入れる為の表だと無意味なテーブル・・・ 表以外の目的でテーブルは利用しない方が良いでしょう。

hainaina
質問者

お礼

上手くいきました! 画像の件も含め、たくさん勉強になりました。 回答ありがとうございました!

その他の回答 (4)

  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.5

失礼。 overflow:scroll; ← セミコロン 半角に

  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.4

失礼。 overflow:scroll; ← コロン 半角に

hainaina
質問者

お礼

すみません。 入力ミスです。 指摘ありがとうございます。

  • karita_83
  • ベストアンサー率45% (39/86)
回答No.2

tableについたクラスに高さを指定して、oveflowの指定をしているからでは。 <div class="text"> を中に入れているtdに高さを指定して overflow:scroll; の指定をすれば上手くいくと思いますよ。 空のtdがいっぱいある理由はわからないですが、多分それで上手くいくはずです。

hainaina
質問者

お礼

やってみましたが、反映されませんでした。 別の方法を探してみます。 回答、ありがとうございました!

  • abacabu
  • ベストアンサー率37% (250/663)
回答No.1

過去に趣味でホームページを作っていた者です。 まずはじめに、表示範囲を指定して、 中身に大量の情報を指定しても、勝手にはスクロールバーは付きません。 スクロールルバーを個別に指定する必要があります。 丁度良い参考ページがあったので貼っておきます。 っていうか… これらの知識はネット上に沢山転がっています。 過去に散々ホームページ作成が流行った時期があるので、 かなり素人向けの解説付き親切サイトが多いです。 スクロールバー タグやホームページ スクロールバー等 で検索すると簡単に欲しい情報が手に入ります。 それでは頑張って下さい。

参考URL:
http://allabout.co.jp/gm/gc/23865/2/
hainaina
質問者

お礼

勉強になりました。 丁寧に説明までしていただきありがとうござます!

関連するQ&A

  • CSSでテーブルを中央にする方法

    CSSでテーブルを中央にする方法を教えてください いろいろなサイトで見た通りにしたのですが、どうしてもFirefoxではテーブルが中央によりません。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta name="description" content=""> <meta name="keywords" content=""> <title>テーブル</title> <style type="text/css"> <!-- .tableley { margin-left: auto; margin-right: auto; text-align: center; } //--> </style> </head> <body> <div class="tableley"> <table cellpadding="0" cellspacing="0" summary="テスト" border="1"> <caption style="font-weight: bolder;">てすと</caption> <tbody> <tr> <td>てすと1</td> <td>てすと2</td> <td>てすと3</td> <td>てすと4</td> </tr> <tr> <td>てすと5</td> </tr> </tbody> </table> </div> </body> </html> 何が悪いのでしょうか? <div align="center">にするしか方法がないのでしょうか? 文法検証すると<div align="center">はあまりよくない使い方と指摘されてしまいます よろしくお願いします。

    • ベストアンサー
    • HTML
  • 入れ子にしたテーブルを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>

    • ベストアンサー
    • HTML
  • テーブル入れ子した時の、テーブル外枠罫線を非表示にしたい

    下記のように、入れ子にしたテーブルを作成しましたが、「AA, BB, 10, 20」のテーブル外枠線が太くなってしまいます。全て細い線で表示させるには、入れ子にしたテーブル外枠罫線を非表示にすれば良いのかなと思うのですが、どうすればよろしいでしょうか? また他によい方法があればアドバイスお願いします。 条件として、 (1)入れ子でテーブルを作成 (2)教えて!gooのように細い線を使用 です。 よろしくお願いします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> <STYLE TYPE="text/css"> <!-- TABLE { margin: 0px; border: 1px solid #ff0000; border-collapse: collapse; } TD { padding: 0px; border-style: solid; } --> </STYLE> <TITLE></TITLE> </HEAD> <BODY> <TABLE border="1"> <TBODY> <TR> <TD>みかん</TD> <TD>バナナ</TD> <TD>パイン</TD> </TR> <TR> <TD>やさい</TD> <TD> <TABLE width="100%" border="1"> <TBODY> <TR> <TD>AA</TD> <TD>BB</TD> </TR> <TR> <TD>10</TD> <TD>20</TD> </TR> </TBODY> </TABLE> </TD> <TD>りんご</TD> </TR> <TR> <TD>いちご</TD> <TD>すいか</TD> <TD>れもん</TD> </TR> </TBODY> </TABLE> </BODY> </HTML>

  • 表示すると文字化けします

    下記のファイルが表示されると文字化けしてエンコードを修正しないとみれませんなぜでしょうか? 日本語EUCになってしまします。 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <META http-equiv="Content-Style-Type" content="text/css"> <TITLE></TITLE> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <BODY> <TABLE border="1"> <TBODY> <TR> <TD bgcolor="#ffff00" width="699"><B><FONT size="+2">登録ありがとうございました</FONT></B></TD> </TR> <TR> <TD height="99" width="699"><B>■<A href="http*************************">使いこなすために</A>手順に沿って進んでください</B>→<A href="http**************************">次へ進む</A></TD> </TR> </TBODY> </TABLE> </BODY> </HTML>

    • ベストアンサー
    • HTML
  • tableの縦横センタリングについて

    お世話になります。 html4.01のhtmlのDOCTYPEですが、URL付きに変更しました。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">     ↓ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> そうしたところ、tableのセンタリングがされなくなってしまいました。 css指定で、横のセンタリングはできたのですが 縦方向がどうしても、topの位置になってしまいます。 ネット検索したところ、いろいろ解決策があるのですが、どれを試しても どうしてもうまくいきません。 どこがダメなのか、アドバイスお願いできないでしょうか。 ソースコードを以下に記します。 tableのborde色を赤にしています。 この赤が、画面横縦に中央に表示されるようにしたいのです。 画面サイズを変更しても。 よろしくお願いします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Language" content="ja"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <style type="text/css"> <!-- body{ background-color:#f5f5dc; } .container { display: table; width:100%; height:100%; } .contents { display: table-cell; vertical-align: middle; } --> </style> <title>test</title> </head> <body> <div class="container"> <div class="contents"> <table style="width:100%;height:100%;border:1px solid red;" cellpadding="0" cellspacing="1" summary="test"> <tr> <td style="text-align:center;vertical-align:middle;">    <input type="button" value="新規"></td> <td style="text-align:center;vertical-align:middle;">    <input type="button" value="変更"></td> </tr> <tr> <td style="text-align:center;vertical-align:middle;" colspan="2">    <input type="button" value="戻る"></td> </tr> </table> </div> </div> </body> </html>

    • ベストアンサー
    • CSS
  • 横に並べたテーブル

    200×200px程度のテーブルを複数(行数や列数はバラバラです)横に並べたいのですが、とりあえず、 <html> <head> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>ページのタイトル</title> <style type="text/css"> <!-- body{ color:#330000; background-color:#cc3333; } table.a{ background-color:#ffffff; padding:1px; border:1px solid #000000; display:inline; margin:5px; } td.a{ text-align:center; vertical-align:middle; border:1px solid #000000; font-size:small; padding:1px; background-color:#ffffff; } div.center{ text-align:center; } --> </style> </head> <body> <div class="center"> <table class="a"> <tr><td class="a">AAAAAAAAAA</td></tr> <tr><td class="a">AAAAAAAAAA</td></tr> </table> <table class="a"> <tr><td class="a">BBBBBBBBBB</td></tr> <tr><td class="a">BBBBBBBBBB</td></tr> <tr><td class="a">BBBBBBBBBB</td></tr> </table> </div> </body> </html> という感じでdisplay:inlineで並べました。 これだとIEでは普通に見えるのですが、Ffだと表示が崩れてしまいました。 どこがいけないのかよくわかりません……。FfやNNでもちゃんと見えるようにしたいのですが、どうすればいいでしょうか。 また、スタイルシートでもっといい他の方法があったら教えていただけると助かります。 よろしくおねがいします。

    • ベストアンサー
    • HTML
  • tableの幅が指定幅になりません

    外部CSSを使用して、下のようにtableの幅指定をしているのですが、幅が指定どおりのサイズになりません。windowsXPのIE7で確認しています。 ●HTMLソース---------------------------- <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <title>***</title> <link rel="stylesheet" type="text/css" href="style.css" media="all" /> </head> <body class="otoiawase"> <div id="main"> <div class="recipie_space_large"> <table> <tr> <td rowspan="2" class="flow_ph"><img src="image/1.jpg" width="140" height="94" /><br /><img src="image2" alt="next" width="140" height="50" /></td> <th><img src="image3.gif" alt="" width="27" height="27" /><b>text</b></th> <td class="freespace" rowspan="2"></td></tr> <tr> <td>comment</td> </tr> </table> </div> </div> </body> </html> ●CSSソース(外部)---------------------------- *{ margin: 0; padding: 0; } #main .recipie_space_large{ width:730px; } #main .recipie_space_large table{ width:730px; } #main .recipie_space_large table{ border:1px solid #000000; } #main .recipie_space_large table th{ height: 27px; border:1px solid #000000; } #main .recipie_space_large td{ border:1px solid #000000; } #main .freespace{ width:80px; } #main .flow_ph{ width: 150px; } --------------------------------------------- http://www5a.biglobe.ne.jp/~satomi-h/test.html 表示結果↑ 画像が切れていますが、同じ現象です。 textと書いてある部分のセルの幅の高さを27pxにしているのですが、とても大きくなります。class指定にするなどしてみましたが、どれもこのサイズになってしまいます・・・ また、tdにボーダーの指定をしていますが、一番右側のclass="freespace"のセルにボーダーが表示されません。CSSの表記の仕方が悪いのでしょうか?わかる方がいらっしゃいましたらよろしくお願いします。

    • ベストアンサー
    • HTML
  • テーブルの大きさを揃えたい

    各ページの大きさ=高さが揃わないのですが原因がわかりません。 1.文字の高さが指定した高さより大きい?(普通の文字の高さは決まっているのでしょうか。) 2.入れ子にしているテーブルで2行の所が指定した高さより大きい? 3.CSSスタイルの背景の高さが関係している? 4.全体の大きさがずれている? 参考にHTML(高さのみ)抜き出しますので教えていただけませんか。 【ページ1】 <table width="700" height="55" border="0"> <tr> <td><img.gif height="40"> welcome homepage(見た目は2行)</td> <td> </td> <td align="right" valign="bottom"> <img.gif" height="20" ></td></tr></table> <table height="15"></table> <table height="430"> <tr><td height="375"><flash.swf height="360"></td></tr> <tr><td height="25"></td></tr> <tr><td height="15"></td></tr></table> 【ページ2】 <table width="700" height="55" border="0"> <tr> <td height="40"> <img.gif height="40"></td> <td height="40"> </td> <td height="40"></td></tr> <tr><meta http-equiv="Content-Style-Type" content="text/css"> <td height="15"> welcome homepage </td> <td height="15"></td> <td align="right" height="15">|HOME|MAP|MAIL|</td></tr></table> <table height="15"></table> <table height="430"> <tr><td> <table height="10"> <tr><td height="15"></td></tr> <tr><td><IFRAME height="380"></IFRAME></td></tr> </table></td></tr> <tr><td height="15"></td></tr></table>

  • DreamWeaverで作るテーブル

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>無題ドキュメント</title> </head> <body> <table width="800" height="394" border="1" align="center"> <tr> <td>  <p>1</p> <table width="200" border="1" align="left"> <tr> <td height="118">2</td> </tr> </table> <table width="600" border="1"> <tr> <td height="121">3</td> </tr> </table> <p> </p></td> </tr> </table> </body> </html> このようにテーブルを作った場合、3のセルの右のラインが1のセルの右ラインに隠れるというか見えなくなります。 そこで3のセルにalign="left"を設定するとIEではラインが見えるのですが、Netscapeでは2と3が縦に並んでしまいます。 なんとか3の右ラインを見えるようにしてNetscapeでも縦に並ばないようにするにはどうすればいいでしょう。 よろしくお願いいたします。

  • CSS line-height が効かない

    下記のように<table>の行の間隔を狭める為、CSSのline-height: をつかっているのですが、 <td>の内側に<a hrefを使っているのが原因なのか、line-heightが効きません。 sample.css table td.aa { font-size : 0.8em; line-height:150%; } sample.html <table> <tr><td class="aa"><a href="http://......">ああああああああ</a> </td></tr> <tr><td class="aa"><a href="http://......">いいいいいいいい</a> </td></tr> </table> どなたかお助けください。

    • ベストアンサー
    • HTML