ブロックとテーブルの間の隙間が大きい原因と解決方法

このQ&Aのポイント
  • スタイルシートでメインとレフトの2カラムを設定すると、メインの上とテーブルの間に大きな隙間ができる現象が起こります。同じレイアウトの他のページでは隙間がないため、レイアウトに問題はありません。また、ブロックとテーブルの間にひらがな表示で隙間を作ったこともなく、テーブルの寸法も問題ありません。
  • この現象の解決方法としては、以下のようなものがあります。 1. テーブルの上に余分なスペースがある場合、paddingを0に設定する。 2. メインとレフトのカラムの幅の調整を行い、両方の要素が収まるようにする。 3. テーブルのmarginやpaddingが原因である場合、それぞれの値を調整する。
  • 上記の方法で問題が解決しない場合は、CSSやHTMLのコードを確認し、他の要素との干渉がないか確認することも重要です。また、ブラウザごとに表示が異なる場合は、ブラウザ固有のCSSプロパティを利用することも検討してください。
回答を見る
  • ベストアンサー

ブロックとテーブルの間の隙間

<div id="content"> <div id="main"> <table border="1" frame="hsides" rules="rows"> <tr><td >&nbsp;&nbsp;カラー</td></tr> </table> </div> <div id="left"> <div><img src="images/side.png" class="alphafilter" /></div> </div> </div> 上記のようにスタイルシートでメイン、レフトの2カラムを設定し メインの中に表組みを設定するとメインの上とテーブルの間に 大きい隙間が出きて、レフトの画像と段違いになります。 どうしてそうなるんでしょうか? チェックしたことを記します。 ○レイアウトに問題はありません。同じレイアウトの他のページは隙間がありません。 ○ブロックとテーブルの間にひらがな表示で隙間を作ったことはありません。 ○テーブルの寸法はブロックに収まるものになっています。 同じような現象にあった方いらっしゃいませんか?解決方法を 教えてください。

  • HTML
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
回答No.1

こんにちは。 CSSがないので推測でしかありませんが、 このソースではおそらく、 #content{ width:(全体の幅);←※1 #main{ float:right;←※2 width:(#mainの幅);←※3 margin:**; padding:**; } #left{ float:left;←※4 width:(#leftの幅);←※5 margin:**; padding:**; } のように指定していると思います。 考えられる原因は ⇒table,divのpaddingやmarginの数値が計算に入っていない。 またtable,divのpaddingやmarginは0、もしくは計算に入れているものと考えると、 ⇒※2、※4のようにそれぞれ左右へfloatしているコンテンツが「※1の幅>(※3+※5)」となっている とまぁ、ここまで書いていてなんですが、そもそもソースがおかしいと思います。

kurobon619
質問者

お礼

font_colorさんありがとうございます。解決しました。

関連するQ&A

  • 初心者です。floatでレイアウトしてるのですが、縦線とテーブルの間を広げる方法がわかりません

    floatでレイアウトしてるのですが、縦線とテーブルの間を広げる方法がわかりません メニューとコンテンツが縦線で区切られてるのですが右側のテーブルと縦線が合体してしまいます。 縦線とテーブルの間に少し隙間を作りたいのですが、どうすればいいでしょうか? HTMLとCSSを書いておきます。よろしくお願いします。 ・HTML <div id="contents"> <table> <tr> <td>×</td><td><p>あああ</p> </tr> <tr> <td>○</td><td><p>いいい</p> </tr> <tr> <td>■</td><td><p>ううう</p> </tr> </table> <br><br> a </div> <div id="left-menu"> <ul> <li><a href="index.html" class="a8">メニュー</a></li> <li><a href="league.html" class="a8">メニュー</a></li> </ul> </div> <div id="footer"> ああああああ </div> ・CSS body { width: 900px; } #contents { float: right; width: 740px; border-left: 1px solid #999;} #left-menu { float: left; width: 150px;} #footer { clear: both; }

  • tableがbodyにはみ出る。。

    文章での質問で恐縮ですが、 html例に記載のような形で、レイアウトを作っています。 ヘッダーとフッター、左右のBOXとベタな構成かと思ってますが、 右ボックス(div right-box)内のテーブルの行が増えた際(運用上、可変で増えます)に、 tableがdiv構成(wrap-1,wrap-2,right-box,footer)からはみ出して、bodyの領域に出てしまいます。 スタイルシートでは左右のボックスをfloat left、float rightしていて、 テーブルの行が可変なので、left-box以外にはheightは指定していないです。 ※left-boxのheight指定は100% heightを指定しなければ、基本的に行追加に合わせて、可変で動くような気がしているのですが、 どうもうまくいかないです。 left-boxにheightを指定しているのは、left-box内に定義している要素があり、 heightの指定がない場合に、その要素の高さになってしまうので、 right-boxと同じ高さになるように、100%を指定しています。 分かりにくい質問で申し訳ないですが、 right-boxのheightをtableの行追加に合わせて可変にする方法はないでしょうか? 本来、heightなしで可変になるのであれば、 可変にならない原因の推測をお願いします。 ---ここからhtml例--- <html> <head> </head> <body> <div id="wrap-1"> <div id="header">; </div> <div class="wrap-2"> <div id="left-box"> </div> <div id="right-box"> <table id="table"> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> <tr> <td><textarea></textarea></td> </tr> </table> </div> </div> <div class="footer clear"> </body> </div> </div> </body> </html>

    • ベストアンサー
    • HTML
  • CCSを使ってTABLEタグをやめたい。

    初心者です。 よろしくお願い致します。 現在 <table width="99%"> <tr> <td width="85"></td> <td></td> <td width="80"></td> <td width="70"></td> <td width="70"></td> </tr> </table> のテーブルタグを外しCSSで同じように再現できないか苦戦しています。 自分なりに #table {width: 99%; } #A{ width: 85; float: left; } #B{ float: left; } #C{ width: 80; float: left; } #D{ width: 70; float: left; } #E{ width: 70; float: left; } として <div id="table"> <div id="A"></div> <div id="B"></div> <div id="C"></div> <div id="D"></div> <div id="E"></div> </div> としてみたのですが、いまくいきません。もしご存知の方がいましたら是非教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • IE以外のブラウザで隙間ができる

    お世話になっております。 上テーブルと下テーブルを隙間なく配置したいのですがIE6,7以外のブラウザだと3pxくらいの隙間ができてしまいます。厚かましいお願いで恐縮ですが、下記タグをチェックしていただけないでしょうか…。 <table width="758" height="160" border="0" cellpadding="0" cellspacing="0" background="image/gazou.jpg" style="background-repeat:no-repeat"> <tr><td height="30">&nbsp;</td></tr> <tr><td>ここに文字を入れています</td></tr> <tr><td height="30">&nbsp;</td></tr> </table> <div class="test"><br> <table width="758" border="0" cellpadding="0" cellspacing="0"> <tr><td>ここも文字</td></tr> </table> </div> 上のテーブルには背景画像を指定しており、下テーブル部分に色をつけたいのでdivを使いCSSを適応させています。(デザイン上、下テーブル背景に色をつけるのではダメなので) これが問題なのかと思い、divタグを消してみたりしましたがだめでした。 div"test"のCSSは .test{ margin:0px; padding:0px; background-color:#333333; border-bottom:solid 1px #999999; width:758px; height:262px; } としています。 本当に厚かましいお願いで恐縮ですが、ご教授いただけるととても助かります。どうぞよろしくお願いします。

    • ベストアンサー
    • HTML
  • tableの横の位置を変えるには??

    <div> <table> <tr><td>あ</td><td>い</td></tr> <tr><td>う</td><td>え</td></tr> </table> </div> が仮にあったとして、これを外部CSSファイルでどこかのタグに text-align:center を適用させ、テーブルの位置を真ん中にさせたい(表のような使い方です)んですが、自分でやってみたら、divとtableにIDとclassで両方試して適用させましたができませんでした。 この表の横の位置をブロックとしてとらえて移動させることはできる でしょうか??

    • ベストアンサー
    • HTML
  • liタグ中の二つのTABLEの間を埋めたい

    お世話になります。 現在二つのテーブルタグを埋めたくて、思考錯誤中です。 普通にTABLEタグを利用すると、二つのテーブルは隙間なく埋まります。 これをliタグに持っていくと、隙間が発生しております。 これを埋める方法はありませんでしょうか? 何卒よろしくお願いします。 (ちなみに私の環境はIE6です。) <!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"> <head> <title></title> </head> <body style="background-color:Black;"> <div> <table> <tr> <td> <table style="background-color: Red;"> <tr> <td> a </td> </tr> </table> <table style="background-color: Red;"> <tr> <td> b </td> </tr> </table> </td> </tr> </table> </div> <ul> <li style="text-align: left; vertical-align: middle;"> <table style="background-color: Yellow;"> <tr> <td> a </td> </tr> </table> <table style="background-color: Yellow;"> <tr> <td> b </td> </tr> </table> </li> </ul> </body> </html>

    • ベストアンサー
    • HTML
  • テーブルとテーブルの間に、隙間があいてしまいます。

    お世話になります。 表題のとおりです。 下記ソースのテーブル<!-- 丸枠 -->と<!-- ヘッダ -->間は、問題ないのですが テーブル<!-- ヘッダ -->と<!-- ロゴ -->の間に隙間が開いてしまいます。 1時間ほど考えましたが、どうにもこうにも理由が分かりません。 初心者的なソースで恐れ入りますが、詳しい方にご助力いただければ幸いです。 ---------------------------以下ソース-------------------------------------- <body> <!-- 背景白 --> <table border="1" cellpadding="0" cellspacing="0" class="table_white"> <tr> <td> <!-- 丸枠 --> <table width="820" border="0" cellspacing="0" cellpadding="0"> <tr> <td><img src="image/head.gif" width="820" height="9" /></td> </tr> </table> <!-- 丸枠ここまで --> </td> </tr> <tr> <td align="center"> <!-- ヘッダ --> <table width="730" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="324" height="15" align="left" > <strong class="seo01">ミ</strong></td> <td width="203">&nbsp;</td> <td width="5" align="center"><img src="image/spacer_glay.gif" width="1" height="10" /></td> <td width="42"><a href="kaisya.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image4','','image/head_kaisya_ov.gif',1)"><img src="image/head_kaisya.gif" alt="会社概要" width="42" height="11" border="0" id="Image4" /></a></td> <td width="5"><img src="image/spacer_glay.gif" width="1" height="10" /></td> <td width="61"><a href="toiawase.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('問い合わせ','','image/head_toiawase_ov.gif',1)"><img src="image/head_toiawase.gif" alt="お問い合わせ" width="61" height="11" border="0" id="問い合わせ" /></a></td> <td width="5"><img src="image/spacer_glay.gif" width="1" height="10" /></td> <td width="62"><a href="sitemap.html" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('sitemap','','image/head_sitemap_ov.gif',1)"><img src="image/head_sitemap.gif" alt="sitemap" width="62" height="11" border="0" id="sitemap" /></a></td> <td width="5"><img src="image/spacer_glay.gif" width="1" height="10" /></td> </tr> </table> <!-- ヘッダ ここまで--> </td></tr> <tr> <td align="center"> <table width="730" border="0" cellspacing="0" cellpadding="0"> <!-- ロゴ --> <tr>     <td colspan="13" align="left"><a href="http://www.com/"><img src="image/logo.gif" alt="ミ" width="92" height="48" border="0" ></a></td> </tr> <!-- ロゴ ここまで --> ---------------------------ソースここまで-------------------------------------- ---------------------------念のため使用CSS-------------------------------------- body { font-family: "MS P明朝", "細明朝体", "ヒラギノ明朝 Pro W3"; font-size: 12pt; font-weight: normal; color: #5c5c5c; background-color: #889fb6; margin-left: 30px; margin-top: 30px; letter-spacing: 2.5px; line-height: 18px; } .table_white { background-color: #FFFFFF; width: 820px; } .seo01 { font-size: x-small; letter-spacing: normal; font-weight: normal; } ---------------------------ここまで--------------------------------------

    • ベストアンサー
    • HTML
  • テーブルのレイアウトがおかしくなる

    畏れ入ります。 テーブルを作っているのですが奇妙な現象にあっています。 <table border="1" width="100%"> <tr> <th width="18">&nbsp;</th> <th width="100">&nbsp;</th> <th>&nbsp;</th> <th width="100">&nbsp;</th> </tr> <tr> <td rowspan="2">&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> <td>&nbsp;</td> </tr> <tr> <td colspan="3">&nbsp; <!-- ここに たくさんの 文字列を入れると ・・・ --> </td> </tr> </table> このコメントの部分が無い状態では正常にでていますが、 ここにたくさんの文字列(半角30文字程度でおかしくなります)を投入すると、レイアウトが異常に崩れてしまいます。 文字列は改行してもかまわないのですが テーブル1行目2行目のセルサイズ(width)がこのように変化してしまうと困るのです。 どのようにしたら良いか(width=100の部分を守らせたい) 教えてください。

    • ベストアンサー
    • HTML
  • CSSでID等が何もないtableブログパーツを編集したい

    こんにちは。 ブログのパーツをCSSを使って編集したいのですが、 編集したいパーツのTABLEには、IDなどが設定がされていません。 css初心者のため、まだ手探り状態です。 ページの形は、以下のように配置されています。 1.編集できるパーツ(HTML・CSS入力可) 2.編集できないテーブル 3.編集できるパーツ(HTML・CSS入力可) 編集したいのは2.のテーブルでしてHTMLは、 <table width="100%"> <tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr> </table> みたいな感じです。 このテーブルのセルに、padding、borderなどを設定したいのです。 CSSの中に、 td { vertical-align: top; } とすることで上揃えのみは影響なくできましたが、 borderは、その他のセルにも大きな影響を与えてしまうためできません。 他に考えたのですが、divを使って、divに囲まれたテーブルなどを cssで編集するようなことはできませんでしょうか? 1のパーツの最後に <div ####(IDみたいな?)>と開始を入れて、 2のパーツの冒頭で</div>と することで、divで囲まれたテーブルにするような方法は可能ですので、 cssにあらかじめこのdivの情報を入れておけば、 このdiv内のテーブルのレイアウトが変更できるのではないかと考えたのですが・・・・。これって無理な話なのでしょうか? 色々やってみたのですが、cssを勉強し始めて1週間では分かりませんでした。 他にこういうことをすれば編集できる可能性があるなどの情報があれば 教えてください。よろしくお願いします。

    • ベストアンサー
    • CSS
  • HTMLで文とテーブルの間が空く。

    現在HTMLとCSSでホームページを作成しています。 それで文とテーブルの間に意図しない空欄ができてしまいます。 この理由と対策を教えてください。 HTMLは↓ <div id="contents"> <div id="main"> <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> </div><!-- main end --> <div id="totop"> <p><a href="#top">ページのトップへ戻る</a></p> </div><!-- totop end --> </div><!-- contents end --> です。 この会社概要<h2>と<table>の間に十数行の空欄ができます。 CSSを取り除いてHTMLだけにしても、こう表示されます。 ご回答お願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう