• ベストアンサー

table周辺の隙間をなくしたい。

ヘッダーのバーとすぐ下のtableの間の隙間を無くしたいのですが、どうすれば良いのでしょう。 margin属性を調整すれば隙間を無くせるブラウザもあるようですが、IEはどうしてもダメなのではないでしょうか。なによりも、ブラウザ次第で隙間の大きさが違うのに困っています。 ***** test_06.html ***** <!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"> <title>只今お勉強中!</title> <link href="test_06.css" rel="stylesheet" type="text/css"> </head> <body> <img class="header" src="header_01.jpg" alt=""> <table class="main"> <tr class="logo"> <td class="01"> <img class="logo" src="logo.jpg" alt=""> </td> <td class="02"> <div></div> </td> </tr> </table> </body> </html> ***** test_06.css ***** body { margin-top: 0px; text-align: center; background: url("header_back.gif") repeat-x; background-color: #CBE5FF; } img.header { margin: 0px auto; width: 820px; display: block; } table { margin: 0px auto; width: 860px; background: url("wrapper_01.gif") repeat-y; } td { margin: 0px; padding-left: 20px; width: 352px; float: left; } img.logo { width: 352px; margin: -3px 0px -3px -3px; }

  • HTML
  • 回答数9
  • ありがとう数3

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

  • ベストアンサー
noname#83877
noname#83877
回答No.2

もしかしてマイナスマージンを指定していることと関係あるのでしょうか? テーブルのセルの間隔などを指定するプロパティが用意されているので、それを使えば解決するのではないでしょうか。 imgのマイナスマージンを消してtableにborder-collapse:collapse;を追加します。

makoji
質問者

補足

border-spacing:0px;とやると、マイナスマージンを指定しなくてもsafari、firefox、opera、chromeでは問題なく表示されるようです。 デザイン上の根拠が無いのに、ブラウザの都合でマイナスマージンを使うというのは、ブラウザも星の数ですので、知らないところでおかしな表示を生じてしまう可能性があります。こちらの記述の方がスッキリしていいですね。 ありがとうございます。 ただIEだけはまだ隙間が残っているんです・・・

その他の回答 (8)

  • abril
  • ベストアンサー率69% (388/560)
回答No.9

ANo.7-8です。ANo.7のお礼を読みました。 現在の http://makoji.web.fc2.com/test/test_06/test_06.html も拝見させて頂きました。 その上で、おせっかいかなあとも思ったのですが、2点だけ気になる箇所があったのでもう一度だけレスさせて頂きます。 img.logoとdiv.comentの"float: left;"との指定の意図は何でしょうか? この指定だとimg.logoとdiv.comentは「左に浮いた」状態になっているので、もしも親要素の同じセル内でそれぞれに続く要素があった場合、続く要素(例えばテキストなど)は回り込む事になり、想定しているレイアウトは崩れます。以下の様に試しにテキストを入れて見たりすると現在どういう状態になっているかがよくわかるのではないかと思います。 --------------------------------------------------------------------- 【http://makoji.web.fc2.com/test/test_06/test_06.html】 --------------------------------------------------------------------- (省略) <tr class="logo"> <td class="logo"> <img class="logo" src="logo.jpg" alt="">ロゴに続く要素 </td> <td class="coment"> <div class="coment">コメント</div>コメントに続く要素 </td> </tr> (省略) --------------------------------------------------------------------- 内容からして、上記の様に要素が続く事は考えておられないとは思いますが、質問者様が現在のヴァージョンで実現したかった事は: (1)<img class="logo"~>を<td class="logo">~</td>のセルに隙間無くぴったり収めたい (2)<div class="coment">~<div>を<td class="coment">~</td>のセルの左端にぴったり寄せたい という事だけなのではないでしょうか?img.logoとdiv.comentの"float: left;"だけ削除した状態にしてみた時にIEで起こる表示結果から想像したのですが。 もしそうであるなら、IEでは"float: left;"の追加で「一見」問題が解決している様に見えたかもしれませんが、先述の説明とサンプルの通り(「浮かせる」必然性がある様には見えないので)適切な解決にはなっておりません。(1)(2)の状態を求めるだけならば、一例としてCSSを以下の様に変更すれば解決します。 --------------------------------------------------------------------- img.logo { width: 352px; height: 55px; vertical-align: bottom;←追加 ("float: left;"を削除) } td.coment { padding: 0px; background-color: red; text-align: left;←追加 } div.coment { background-color: green; margin: 0px; padding: 0px; height: 55px; width: 468px; ("float: left;"を削除) } --------------------------------------------------------------------- 最後に。 > 画面の真ん中に全ての要素を綺麗にならべるのに、tableを使ったらどうなるか試してみたかったのですが、tableをそういう用途で使用することがあまりお薦めでないなら、このくらいの段組全体にtableを用いるべきではなさそうですね。 そうですね。あくまでtableは論理的意味は「表」であり、段組レイアウトをする為に用意されている性質のものではありませんので、この場合であればやはりtableでのマークアップは相応しくないと思われます。 > それにtableを使ってみて、divブロックを並べていくのと比べて、それほどコードが簡便になるということではなさそうですし。 適切なマークアップ(「ブロックを並べ」るのに相応しいのはdivとは限らない場合も多いです)をした上で、適切なスタイルを与えられれば、大概のレイアウト((X)HTML向きのデザインを大きく逸脱したものでなければ)は解決できますので、頑張ってみて下さい。

makoji
質問者

お礼

左の画像を下げたら右の画像を含めて全体が上に締まるという発想は今の私にはありませんでした。text-alignとfloatの違いも今まであまり意識していませんでしたし、とても勉強になりました。 ありがとうございます。

  • abril
  • ベストアンサー率69% (388/560)
回答No.8

ANo.7です。 今改めてやりとりを見直していたら、ANo.5様が「テーブルの内部の画像って logo.jpg のことですね?」とおっしゃってますが、ANo.4の補足でレスされていた「IEではやはり隙間が残ったまま」「テーブルの内部で、画像との間に隙間が生じている」というのは、ヘッダー画像<img class="header" src="header_01.jpg" alt="">ではなく、セル内のロゴ画像<img class="logo" src="logo.jpg" alt="">の事だったでしょうか? もしそうなら、その件は本来のご質問内容とはまた別の現象ですので特に触れませんでしたが、先程の修正版のサンプルで見る限り、IEと他のブラウザとの差は、<img class="logo" src="logo.jpg" alt="">の水平方向の位置が<td class="01">のセルの領域に対して”左寄せ”になっているか”センタリング”になっているかの差だけですが(ただこの現象であればむしろ、IEの方が「隙間がない」という状態に相応しいので、ちょっとレスの字面と矛盾してしまうのですが)。 仮にこの事であるなら、tdのスタイルとして"text-align: left;"を追加すれば一律で(paddingで設定された様に)セルの左端から20pxの位置で揃います。 追記:"td.01"の様に数字で始まるクラス・セレクタは無効になりますので、このクラス・セレクタに某かのスタイルを別途用意(提供されているCSS内には見当たらないので…)されているならば"td.data01"などの様にアルファベットで始まるクラス名を付けて下さい。

makoji
質問者

お礼

コードは次のURLのソースのように直しました。 http://makoji.web.fc2.com/test/test_06/test_06.html 確かに「border-collapse: collapse;」で隙間が小さくなりました。一度試してダメだったんですけど、多分スペルミスでもしていたのでしょう。 でも、それでも1pxほどの隙間が残ったので、div.comentを「padding: 0px;」としたら隙間がなくなりました。 ありがとうございます。 今、練習で既にあるサイトを勝手に真似ているのですが、その元のサイトが次のURLです。 http://gshop2.com/main/ 画面の真ん中に全ての要素を綺麗にならべるのに、tableを使ったらどうなるか試してみたかったのですが、tableをそういう用途で使用することがあまりお薦めでないなら、このくらいの段組全体にtableを用いるべきではなさそうですね。 それにtableを使ってみて、divブロックを並べていくのと比べて、それほどコードが簡便になるということではなさそうですし。 お手数をおかけしました。 ありがとうございます。

  • abril
  • ベストアンサー率69% (388/560)
回答No.7

ざっと質問と回答の経過を見たところ、各回答者様からのアドバイスを「正しく組み合わせた修正」さえしていれば、既に解決に至っていたのではないかと思われますが… 現状がどうなっておられるのかわからないので、とりあえず今回はANo.5の補足で質問者様が書かれているHTML(test_06.html)&CSS(test_06.css)が最終ヴァージョンと仮定した上で、HTMLのサンプルはそのままで、CSSの方のみ修正を加えてみました。あくまで現在のHTML(test_06.html)の文書構造に手を加えないで…という事なら、CSSを下記の様に変更すればお悩みの症状は改善されると思います。 検証環境はIE6/7、Firefox2/3、Safari3、Opera9.61、Google Chromeです。 --------------------------------------------------------------------- 【test_06.cssの修正版】 --------------------------------------------------------------------- body { margin-top: 0px; background: url("header_back.gif") repeat-x #CBE5FF;←(特に分ける意図がないのであれば)background-color属性もまとめた方がすっきりします } div.main { margin: 0px; padding: 0px; text-align: center; } img.header { display: block;←★ブロック要素化 width: 820px; margin: 0px auto; } ※"padding: 0px;"は(初期値が0なので)不要。 table { margin: 0px auto; width: 860px; border-collapse: collapse;←★このプロパティを指定しないと、初期値が分離モデル"separate"の為、セルの間隔が0ではなくなり(tdとtdとの間に更に見えない隙間の様なものができる仕様と思っておいて下さい。paddingとは別物です。)、今回のスタイルには不都合と思われます。 background: url("wrapper_01.gif") repeat-y; } ※"padding: 0px;"は(元々paddingは与えられていないので)不要。 ※"border-spacing: 0px;"は、border-collapseプロパティの値が"separate"の時だけ有効であり、またIEでは実装されていないので今回は不要。 ※tr {~}の指定部分は丸ごと削除。trはmargin及びpaddingプロパティの適用対象にならないので、無効。 td { padding: 0px 0px 0px 20px; width: 352px; } ※tdはmargin及びfloatプロパティの適用対象にならず無効なので、それらを削除。 img.logo { width: 352px; } ※"margin: 0px;"、"padding: 0px;"は(それぞれ初期値は0なので)不要。 --------------------------------------------------------------------- 本件の現象の直接の原因は、★の部分のみですが、←や※で示した箇所は、オリジナルのCSSに不足していた指定及び不要(無効を含む)な指定ですのでこの際修正された方が宜しいでしょう。 > IEでは、ヘッダーの画像とテーブルの間の隙間は解消されているようです。テーブルの内部で、画像との間に隙間が生じているようです。 ANo.4様の「3 <img class="header" src="header_01.jpg" alt=""><table class="main"> と続けてみる。(間に空白も改行も入れない)」をHTML側に適用したのだとしたら、<img>と<table>の2要素間に改行コードが入らないので、その結果「ヘッダーの画像とテーブルの間の隙間は解消」されたのでしょうが、border-collapseプロパティが指定されていなかったのでIEでは初期値である"border-collapse: separate;"と実装されていない"border-spacing: 0px;"の組み合わせとなってしまっていた為、セル間の隙間が全くの0ではなくなり「テーブルの内部で、画像との間に隙間が生じて」いたのでしょう(ANo.2様とのやりとりで疑問に思われていた問題は、これに依るものです。)。 ちなみに、上記の★で追加した様に、img.headerをdisplayプロパティでブロック要素化しておけば、最初のサンプルの様に<img>と<table>の2要素間に改行コードが入ったHTMLソースであっても「ヘッダーの画像とテーブルの間の隙間」はできません。 何故か…という説明は省略させて頂きますので、ご興味があったら「ブロック要素/インライン要素」などのキーワードで調べてみて下さい。(X)HTML文書を正しく理解する為の最も重要なポイントの一つです。 「ブラウザ次第で隙間の大きさが違うのに困っています。」については、確かにそういう場合もないわけではないすが、「隙間をなくす」というこの程度のスタイルであれば、指定が適切であれば主要モダン・ブラウザブラウザ間の差は吸収できます。本件においてはやはりCSSの各プロパティの指定が適切ではなかった事が原因です。 それから、CSSに対する正確な理解がかなり不足しておられる(例えば質問者様のオリジナルの指定の様に、実際にtdがfloatできたりしたら大変な事になってしまいますよ…)様に見受けられますので、ちょっと混乱されてしまったのではないでしょうか。一度CSSの仕様を段階を踏んで学ばれておく事をお奨めします。覚えるまでは、各プロパティがどの要素の適用対象になっているかを確認しながらスタイルを設定して行く習慣を付けておく方がいいですよ。 あとは補足というか蛇足です。ANo.1様とANo.3様の”bodyの直下にimgは置けない”というご指摘は、質問者様の現在のHTML文書がANo.5の補足にある通りのDOCTYPEであるならば、質問者様が「文法チェックもしてみましたが、これでエラーは出ない」とレスされた通り、違反ではないですね。Another HTML-lint gatewayでもパスします。ただし、これよりより厳密な文法を必要とするDOCTYPEでは違反ですので、今からでもimgに対して某かの子要素として位置づけられるマークアップを意識されておいた方がベターかとは思いますが(例えばこの場合であれば、画像のネーミングからして「見出し(タイトル)」の様に思えますので、もしそうであれば<h1><img class="header" src="header_01.jpg" alt=""></h1>という様に。)。 それから、現在のロゴを収めるテーブルのマークアップについて色々やりとりがある様ですが、実際にこのtable部分に入る他の要素の情報が不足している以上、このマークアップが(少なくとも現段階の情報では)適切か否かは判断できません。ただ、もし真実「表」が相応しい内容でなかった場合は…次の機会にでも見直されてみるのがいいですね。勿論、「表」が相応しい内容であるならそのままで結構です。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.6

≫heder.jpgとlogo.jpgの間に『<h2>見出し</h2>』だの『<p>文章</p>』だの入れて、どうやって二つの画像の間の隙間をなくそうと言うのか・・・  ちゃんとしたHTMLなら、いとも簡単に出来ることを、HTMLがおかしいから、苦労するのです。  実際に使用されている画像のPATHとサイズ、そして、文章構造にしたがってマークアップしたHTMLを例を参考に示してください。すなわち、文章なり画像が意味を持つものなら、それを含めてということ。  携帯で画像なしで表示して意味が取れるということ ≫本を読んで分からないから相談しているんです。  わたしも本は書きますが?tableでもないのに、tableを使って説明してある本なら捨てなさい。

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.5

テーブルの内部の画像って logo.jpg のことですね? td のスタイルに left 以外の padding が見当たらないのですが、私の見落しでしょうか? # IE ではデフォルトがゼロで無かった様な記憶が...

makoji
質問者

補足

コードを以下のように書き換えてみてもやはりIEではだめですね。 どうしてなのでしょう。 ***** test_06.html ***** <!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"> <title>只今お勉強中!</title> <link href="test_06.css" rel="stylesheet" type="text/css"> </head> <body> <div class="main"> <img class="header" src="header_01.jpg" alt=""> <table class="main"> <caption align="bottom"></capion> <tr class="logo"> <td class="01"> <img class="logo" src="logo.jpg" alt=""> </td> <td class="02"> <div></div> </td> </tr> </table> </div> </body> </html> ***** test_06.css ***** body { margin-top: 0px; background: url("header_back.gif") repeat-x; background-color: #CBE5FF; } div.main { margin: 0px; padding: 0px; text-align: center; } img.header { margin: 0px auto; padding: 0px; width: 820px; } table { margin: 0px auto; padding: 0px; width: 860px; border-spacing: 0px; background: url("wrapper_01.gif") repeat-y; } tr { margin: 0px; padding: 0px; } td { margin: 0px; padding: 0px 0px 0px 20px; width: 352px; float: left; } img.logo { margin: 0px; padding: 0px; width: 352px; }

  • zxcv0000
  • ベストアンサー率56% (111/196)
回答No.4

私なら、以下の試行錯誤をすると思います。 1 TABLEのstyleに padding-top: 0px; を追加。 2 TABLEタグの直後に <caption align="bottom"></capion> を追加 3 <img class="header" src="header_01.jpg" alt=""><table class="main"> と続けてみる。(間に空白も改行も入れない) # 以前、<caption align="top"> を持ったテーブルで、 caption の上の余白・下の余白を Firefox と IE6 で同一にするのにえらい苦労しました。

makoji
質問者

補足

captionの件は失念していたので、<caption align="bottom"></capion>は助かりました。 でもIEではやはり隙間が残ったままです。 IEでは、ヘッダーの画像とテーブルの間の隙間は解消されているようです。テーブルの内部で、画像との間に隙間が生じているようです。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

いやはや・・。 W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/ )のにあるように、 「メモ: CSSスタイルシートを意図した通りに機能させるには、正しい文書解析木が必要です。つまり、正当なHTMLを用いるべきです。」 <body>要素には、 <!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body --> と、ブロック要素およびins,dellしか含まれないと書かれている。  ≪7.5.1 BODY要素/HTML 4.01 仕様書 (邦訳) ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/cover.html )  最低限、仕様書くらいは目を通さなきゃ・・  そこには、_____(以下引用) こうしたテクニックは、・・・【中略】・・・すべての人々、すべての時代状況において成り立つものではないのだ。こうしたテクニックの例を挙げよう。 ・・・【中略】・・・ * テキストを画像に置き換えて表現する。 ・・・【中略】・・・ * ページレイアウトの目的で表を用いる。 ・・・【中略】・・・  こうしたテクニックによって、Webページはより複雑化し、限られた環境にしか適応しなくなり、相互運用性問題に悩まされることとなり、障害を持つ人々にアクセス障壁が設けられてしまう。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで  なら、このようなHTML(文字を画像で置き換えたり、tableで配置したり)にはならないはず。 ≫mgタグはインライン要素なので、display属性を使ってブロック化しました。  スタイルシートでdisplay:blockとしても、HTML構文の不正を直せるわけじゃない。 ≫文法チェックもしてみましたが、これでエラーは出ないようです。  Another HTML-lint gateway ( http://openlab.ring.gr.jp/k16/htmllint/htmllint.html )ですか?。ありえません。 ★正しいHTMLを書きましょう。  検証システムは、構造的解析は出来ても、内容的に正しくマークアップされているかについてはチェックできない。 【引用】____________ここから 単純にDTD的にValidだというだけじゃつまらない。構造的にというか、文書として真に妥当たりえているかって辺りまで、とりあえず意識だけでも常々したいところだ。  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[Valid HTML/XHTML - I'll sleep on it.( http://homepage1.nifty.com/VET06031/web/lint100.html )]より よって、わたしの回答はあなたの求めている回答ではありませんが・・・  あなたはとっても回り道をしているようなので、あえて・・ ≫table周辺の隙間をなくしたい。 の方法はありますが、このHTMLの場合はその技術は不要です。 まず、 「CSSスタイルシートを意図した通りに機能させるには、正しい文書解析木が必要です。つまり、正当なHTML」に書き直しましょう。  たとえば、 <body> <h1><img class="header" src="header_01.jpg" alt="****のページ"><span>****のページ</h1> <h2>見出し</h2> <p>文章</p> ・・・・・・・・・・・【中略】・・・・・・・・ <div class="Logo">   <p><<img class="logo" src="logo.jpg" alt=""></p> </div> </body> </html> とか・・・。 【正当なHTMLが出来てから、CSSをどう書くか】 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

makoji
質問者

補足

ご忠告、ありがとうございます。 ただ正しいHTMLを、として例示された記述が 『 例えば <body> <h1><img class="header" src="header_01.jpg" alt="****のページ"><span>****のページ</h1> <h2>見出し</h2> <p>文章</p> ・・・・・・・・・・・【中略】・・・・・・・・ <div class="Logo">   <p><<img class="logo" src="logo.jpg" alt=""></p> </div> </body> </html> 』 heder.jpgとlogo.jpgの間に『<h2>見出し</h2>』だの『<p>文章</p>』だの入れて、どうやって二つの画像の間の隙間をなくそうと言うのか・・・ 上記の例えは純粋なる一般論でHTML文を例示しただけですよね。 そうすると、全体として、本でも読んだら・・・という程度の内容にしかなっていないんですよ。本を読んで分からないから相談しているんです。

noname#83877
noname#83877
回答No.1

bodyのすぐ下にimg要素は置けませんp要素などを使った方が良いです。 <p><img class="header" src="header_01.jpg" alt=""></p>

makoji
質問者

補足

imgタグはインライン要素なので、display属性を使ってブロック化しました。文法チェックもしてみましたが、これでエラーは出ないようです。 一応divタグで囲んでみましたが、IEでは隙間がなくならないようです。firefox、safari、opera、chromeではmarginの調整で隙間がなくなるようです。 全てのブラウザに共通する解決方法はないものでしょうか。

関連するQ&A

  • tableにtable。table同士の間隔を拡大

    スクロールバーを付けるためにtable内にtableを入れました。 中のtableとtableの間隔を開けたいです。 言葉が少ないですが、その分画像で頑張って説明します。 お願いいたします。 <style type="text/css"> #test0{ cellpadding: 2; width: 518px; background-color : #fff; border:1px solid #333; border-spacing:0; } #start{ width: 495px; height: 230; border-top:1px solid #333; border-left:1px solid #333; border-right:1px solid #333; border-bottom:1px solid #ff0000; } .center{ width: 495px; height: 230; border-top: 0; border-left:1px solid #333; border-right:1px solid #333; border-bottom:1px solid #ff0000; } #end{ width: 495px; height: 230; border-top: 0; border-left:1px solid #333; border-right:1px solid #333; border-bottom:1px solid #40ee22; } td.test1{ background-color: #000000; color: #333333; } td.test2 img{ margin: 10px; } .test3{ font-size: 12px; padding: 5px; } td.test4{ text-align: center; } </style> <table id="test0"> <tbody> <tr> <td> <DIV style="height:400px; overflow:auto;"> <table id="start"> <tr> <td class="test1" colspan="3">タイトル</td> </tr> <tr> <td class="test2" rowspan="2"><img src="test.jpg" width="100" height="80"></td> <td class="test3" colspan="2">テストテストテストテストテストテスト</td> </tr> <tr> <td class="test4">left</td> <td class="test4">right</td> </tr> </table> <table class="center"> <tr> <td class="test1" colspan="3">タイトル</td> </tr> <tr> <td class="test2" rowspan="2"><img src="test.jpg" width="100" height="80"></td> <td class="test3" colspan="2">テストテストテストテストテストテスト</td> </tr> <tr> <td class="test4">left</td> <td class="test4">right</td> </tr> </table> <table id="end"> <tr> <td class="test1" colspan="3">タイトル</td> </tr> <tr> <td class="test2" rowspan="2"><img src="test.jpg" width="100" height="80"></td> <td class="test3" colspan="2">テストテストテストテストテストテスト</td> </tr> <tr> <td class="test4">left</td> <td class="test4">right</td> </tr> </table> </div> </td> </tr> </tbody> </table>

    • ベストアンサー
    • 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
  • 隙間ができてしまいます。

    高さ7pxのボックスを作ったのに7px以上の大きさで表示され隙間ができてしまいます。 margin: 0px; padding: 0pxを追加しても解決しませんでした。 http://teatsite.ninja-x.jp/ ↑のborderで囲んである部分です。 この隙間の部分を埋めるにはどうすればよいのかご指摘お願いいたします。 以下ソース 【html】 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <link rel="stylesheet" type="text/css" href="test.css"> </head> <body> <div class="all"> <div class="header"> </div> <div class="menu"> <div class="font-menu"> <div class="menu-top"></div> <div class="menu-center">テスト</div> <div class="menu-bottom"></div> </div> </div> <div class="main"> <div class="font-main"> <div class="main-top"> テスト </div> <div class="main-center"> 本文テスト </div> <div class="main-bottom"></div> </div> </div> <div class="footer"> <div class="font-footer"> テスト </div> </div> </div> </body> </html> 【css】 body{ margin: 0px; padding: 0px; } img{ border: 0; vertical-align: top; } .all{ margin: 0px auto 0px auto; width: 720px; } .font-menu{ color: #ffffff; font-size: 12px; line-height: 150%; } .font-menu a:link{ color: #ffffff; text-decoration: none; } .font-menu a:visited{ color: #ffffff; text-decoration: none; } .font-menu a:hover{ color: #ffffff; text-decoration: underline; } .font-main{ font-size: 12px; line-height: 150%; } .font-footer{ font-size: 12px; } .header{ padding: 44px 0px 0px 0px; height: 56px; } .menu{ margin: 0px 20px 0px 0px; width: 160px; float: left; } .menu-top{/* 問題の部分 */ margin: 0px; padding: 0px; width: 158px; height: 0px; border: solid 1px #000000; background-image: url(pic_menu_top.png); background-repeat: no-repeat; } .menu-center{ width: 124px; height: 22px; padding: 4px 0px 0px 36px; background-image: url(pic_menu_center.png); background-repeat: no-repeat; } .menu-bottom{/* 問題の部分 */ margin: 0px; padding: 0px; width: 158px; padding: 0px; height: 5px; border: solid 1px #000000; background-image: url(pic_menu_bottom.png); background-repeat: no-repeat; } .main{ margin: 0px 0px 0px 20px; width: 520px; float: left; background-image: url(pic_main_wp.png); } .main-top{ margin: 0px; padding: 11px 0px 0px 40px; width: 480px; height: 29px; color: #ffffff; font-size: 16px; background-image: url(pic_main_top.png); background-repeat: no-repeat; } .main-center{ padding: 40px 40px 40px 40px; width: 440px; float: left; } .main-bottom{/* 問題の部分 */ margin: 0px; padding: 0px; width: 518px; height: 5px; border: solid 1px #000000; background-image: url(pic_main_bottom.png); background-repeat: no-repeat; } .footer{ padding: 14px 0px 0px 200px; width: 520px; height: 26px; text-align: center; clear: left; }

  • tdに指定したborderの隙間について

    tdにborder(dotted)を指定して線を引きたいのですが、 セルの境目に隙間が空いてしまいます。 《html》 <table class="information"> <tr> <td class="infoborder_u">営業時間</td> <td class="infoborder_u">月曜~金曜</td> <td class="infoborder_u">9:00 ~ 19:00</td> </tr> 《css》 .information{ width: 350px; height: 180px; background-color: #808080; margin: 10 0 0 0px; border-collapse: collapse; } .information td{ padding-left: 10px; } .infoborder_u{ border-style: dotted; border-width: 1 0 0 0px; border-color: #000000; } 回避方法はないでしょうか?

  • HTMLについて

    現在HTMLを勉強しています そこで画像の配置についてわからないところがあるので教えてください 添付した画像のようにしたいのですが緑の画像がかなりしたになってしまいます どうすればいいでしょうか? コードとCSSは HTML <body> ~~~省略~~~ <div class="menu_block"> <table class="menu_left"> <tr> <td class="photo"><img src="img/siri-zu.gif" style="margin-top:80px;"></td> </tr> <tr> <td class="photo"><img src="img/sekkenn.gif" style="margin-top:20px;"></td> </tr> <tr> <td class="photo"><img src="img/oiru.gif"style="margin-top:10px;"></td> </tr> <tr> <td class="photo"><img src="img/jeru.gif"style="margin-top:10px;"></td> </tr> <tr> <td class="photo"><img src="img/set.gif"style="margin-top:10px;"></td> </tr> <tr> <td class="photo"><img src="img/mini.gif"style="margin-top:10px;"></td> </tr> </table> <img src="img/3.gif" height="300" alt="3STEP" class="menu_right"> <img src="img/rank.jpg" style="margin-top: 80px ;" class="ranking"> <img src="img/test.jpg" width="600" height="200" style="margin-left: 200px;" class="rebyu"> </div> </div> </body> CSS @charset "UTF-8"; h1 { margin: 30px 0 30px 0; padding: 0 0 0 0; line-height: 0; text-align: center; } #wrapper { width: 1050px; margin: 0 auto 0 auto; } .menu_block { overflow: hidden; zoom: 1; } .menu_left { float: left; margin-right: 20px; } .menu_right { float: left; margin-top: 80px; margin-left: 20px; } .ranking { float: left; margin-left: 20px; } .rebyu { float: left; margin-top: 10px; } です 赤の真下に緑が来るというのが理想です

    • ベストアンサー
    • HTML
  • テーブル内に隙間が。

    テーブル内に隙間が。 質問です。CSSとテーブルタグを使用してwebページを作りました。が、 IE,FireFox,Chrome等のブラウザでは添付画像のように隙間が出来ます。 これを無くすにはどうすればいいのでしょうか。 (html/cssの書き直さなくてはならない箇所はどこでしょうか) 高さは左右のセルとも300に合わせているのですが…。 どなたかご教授願います。 <!--ソース --> <style TYPE="text/css"> <!-- td { margin: 0; padding: 0px; } .content_title { display: block; position: relative; padding-left: 0px; width: 100%; height: 40px; color: #ffffff; background-color: #000000;} .content_cell { position: relative; padding-bottom: 0px; width: 100%; height: 260px; padding: 0; } .menu_link { display: block; position: relative; width: 100%; height: 30px; padding-top: 12px; text-align: center; font-size: 11pt; color: #f5f5f5; background-color: #000000; } --> </style> <table bordercolor="#aaaaaa" border="2" align="center" width="92%" bgcolor="#353535" cellspacing="2" height="300"> <td rowspan="6" width="72%" bgcolor="#ffffff" height="300" valign="top"> <div class="content_title">あいうえお</div> <div class="content_cell"><img src="img/hikaku.png" width="100%" height="100%" border="0"></div> </td> <td width="28%" height="30" align="center" bgcolor="#000000"> <a class="menu_link" href="../about/index.html">cell_1</a> </td> <tr><td width="28%" height="30" align="center" bgcolor="#000000"> <a class="menu_link" href="../flash/index.html">cell_2</a> </td></tr> <tr><td width="28%" height="30" align="center" bgcolor="#000000"> <a class="menu_link" href="../web/index.html">cell3</a> </td></tr> <tr><td width="28%" height="30" align="center" bgcolor="#000000"> <a class="menu_link" href="../diy/index.html">cell_4</a> </td></tr> <tr><td width="28%" height="30" align="center" bgcolor="#000000"> <a class="menu_link" href="../link/index.html">cell_5</a> </td></tr> <tr><td width="28%" align="center" height="150" bgcolor="#000000"> <!-- no contents -->no content </td></tr> </table>

  • ホームページの上下の隙間を消すには

    左右にだけ背景があるよくあるページを作ろうと一から自分で作り始めたのですが色々いじってもなぜかどうしても上下に隙間ができてしまいます。 上下がぴったりつく方法を教えて下さい。 ------------------------------------------------------------------------- <!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> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>無題ドキュメント</title> <html> <style type="text/css"> <!-- #main { width: 800px; margin-right: auto; margin-left: auto; background-color: #FFFFFF; } body { margin:0px; padding:0px; background-color: #999999; } --> </style> </head> <body> <div id="main"> <p><img src="images/head_01.gif" width="800" height="1000" /></p> </div> </body> </html>

  • テーブルの隙間について

    WEBのデザインを、本を読みつつ学んでいるのですが テーブルに関して疑問があるので、質問させていただきます。 【cssの中身】 /* ヘッダー */ .head { background-color:#ccc; width:100%; height:70px; margin-left:auto; margin-right:auto; } .head h1 { font-size:14px; font-family:Verdana,Osaka,MS UI Gothic,; color:#000; margin-bottom:2px; } .head td{ vertical-align:middle; } .head1 { width:40px; text-align:right; } .head2 { text-align:left; padding-right: 4px; } .date{ font-size: 12px; color: #666; font-family : Verdana,Osaka,"MS UI Gothic",serif; } /* メニュー */ .menu1 div{ float: left; } .menu{ width: 100%; background-color: #666; font-size: 12px; font-weight: bold; border-top: solid 1px white; } .menu1 div{ width: 80px; border-right: solid 1px white; text-align: center; padding-top: 5px; padding-bottom: 5px; } .menu2{ text-align: right; } .menu2 div{ margin-right: 10px; color: #fff; } .menu1 a{ color: #999; text-decoration: none; } .menu1 a:hover{ color: #fff; } 【ページの中身】 <a name="top"> <table class="head" cellspacing="0"> <tr> <td class="head1"> <img src="icon.jpg" border="0" alt="*" width="35" height="36"> </td> <td class="head2"> <h1>********</h1> </td> </tr> </table> </a> <table class="menu" cellspacing="0"> <tr> <td class="menu1"> <div><a href="link.html">Test</a></div> <div><a href="link.html">Test</a></div> <div><a href="link.html">Test</a></div> <div><a href="link.html">Test</a></div> <div><a href="link.html">Test</a></div> </td> <td class="menu2"> <div>Last update:00.00</div> </td> </table> このような形で、ヘッダーとメニューを作っているのですが、メニューの線とヘッダーとの間に1pxほどの隙間(白い部分)が出来てしまいます。これをなくすことはできないのでしょうか?メニュー部分のテーブルに cellspacing="0"を入れると隙間が無くなると本に書いていたのですが、ほんの少しだけ隙間が残ってしまいます。 宜しくお願いします。

    • ベストアンサー
    • HTML
  • tableタグについて

    tableタグの挙動について教えてください。 下記のタグで、tableの幅は240pxにしたいのですが、 ブラウザ表示(Chrome)では230pxとなりました。 この10pxの隙間はどこで発生しているのでしょうか? どうぞよろしくお願いします。 ーーーーHTMLーーーーー <body style="width:240px;margin:0 auto;"> <div class="list-box"> <table width="240" border="0" cellspacing="0" cellpadding="0"> <tbody><tr> <td>テキスト/td> <td>テキスト/td> </tr> </tbody></table> </div> </body> ーーーーCSSーーーーー .list-box{margin:0 auto;} .list-box table{ width:100%;} .list-box table td:first-child{ background:#900;} .list-box table td:last-child{ background:#069;}

    • ベストアンサー
    • CSS
  • CSSの左横に隙間ができてしまいます。

    画像の左横に謎の隙間(8mmほど)ができて埋まりません。 そのため、4枚収めたい画像のうち、最後の1枚が改行されてしまっています。 padding や vartical-align、text-alignなど試してみましたが、ダメでした。 とても困っています、どなたかご教示くださいますようお願いいたします。 << CSS >> #header { width:940px; height:59px; margin: 0 0 20px 0; } #logo { width:300px; height:59px; float:left; margin: 0 20px 0 0; } #menu { width:620px; height: 59px; padding: 0; margin: 0; float:right; } #menu img { padding-top:8px; border:none; } #menu ul { margin:0; } #menu ul li { margin: 0px; padding: 0px; list-style-type: none; display:inline; float:left; } << HTML >> <div id="header"> <div id="logo"> <img src="img/logo.gif" width="298" height="59" alt="ロゴ"> </div><!-- /#logo --> <div id="menu"> <ul> <li><img src="img/btn_A.gif" width="194" height="51"></li> <li><img src="img/btn_B.gif" width="140" height="51"></li> <li><img src="img/btn_C.gif" width="149" height="51"></li> <li><img src="img/btn_D.gif" width="137" height="51"></li> </ul> </div><!-- /#menu --> </div><!-- /#header -->

    • ベストアンサー
    • CSS

専門家に質問してみよう