• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:tableのズレについて)

tableのズレについて

このQ&Aのポイント
  • tableタグを使用しておおまかなサイトの枠組みを作っている際に、tdタグの幅指定が正しく反映されない問題が発生しています。幅に余裕のある画像を貼ってもズレてしまう理由を教えてください。
  • パソコンの専門用語を使わずにお教えいただけると助かります。tdタグの幅指定が画像を貼ることでズレてしまう理由がわかりません。どのような理由が考えられるのでしょうか?
  • tableタグを使用してサイトの枠組みを作っていますが、tdタグの幅指定が画像を貼ることでズレてしまいます。幅に余裕のある画像を貼っても同じ問題が発生します。どのような理由が考えられますか?

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

  • ベストアンサー
  • leap_day
  • ベストアンサー率60% (338/561)
回答No.6

こんにちは id名はNo.5様の言うようにアルファベットからはじめてくださいね(^^) でセル幅を絶対に変えたくないというのであれば方法はあります <p><img src="・・・.jpg"></p> の部分を <p id="a3"><img src="***.jpg"></p> のように変えて stylesheet内に以下を追加してください #a3{ position:relative; height:262px; } #a3 img{ position:absolute; top:0px; left:50px; } imgの位置は#a3 imgのtopとleftのpx数を変えて調整してください

kuroneko1c
質問者

お礼

ご回答ありがとうございます。m(__)m おっしゃる様にすればセル幅は固定されました! ありがとうございます。m(__)m ちなみにこのスタイル指定はwidthではなくheightを指定していますよね? という事は幅が問題なのではなく高さが問題だという事でしょうか? それと、ページ毎に異なるサイズの画像を使用していて、 ページが相当数ありますので、 画像の高さを指定するこの方法で対応するのはかなり大変です。 それと、以前のものは何がマズかったのか教えて頂けるとありがたいです。 図々しいことばかり申しまして、申し訳ありません。m(__)m

その他の回答 (6)

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.7

こんにちは HTMLのソースはページ毎に書かれていてそこで表示される画像は固定のものという前提で話します stylesheet #a3{ position:relative; } #a3 img{ position:absolute; } HTML <p id="a3" style="height:100px;" ><img src="img/00.jpg" style="top:0px;left:100px;"></p> <p>あ</p> <p>あ</p> <p id="a3" style="height:262px;"><img src="img/01.jpg" style="top:0px;left:0px;"></p> のようにすれば外部cssは同じものを呼び出せばいいですし画像によって高さと位置を変えることができます height指定してやったのはheight:262px;を消して表示してみれば分かると思いますがtextの上に画像が配置される状態になるのでその配置スペースを作ってやったわけです(^^) ズレる理由については僕も分かりません(><) 恐らくwidth指定してやった場合幅が指定より超えるとそのtable内で配分の微調整がおこなわれる為ではないでしょうか? <div id="main"> widthを消すと変わりませんし、width:830pxあたりでようやくズレが出にくくなくなりましたので・・・ 他の画像でも大丈夫のようならこちらの方が簡単ですね #main { width:830px; }

kuroneko1c
質問者

お礼

ご回答ありがとうございます。m(__)m やはりHTMLソースに書き込むスタイルを増やすしかなくなりますよね・・。 SEO対策上、極力スタイルはCSSへ放り込みたくて、 以前はテーブルタグは一切使わずに全てCSSの段組を使っていたのですが、 テーブル以上にズレが多くて、少し構成を変えるともう全体を修正しないといけなくなって・・。 それで部分的にテーブルを使っているのですが、 どうにもこうにも難しいですね^^; 485pxに指定しているセルをそのままにして、 280pxに指定しているセルの幅指定をやめてみました。 そうするとズレが納まりました。 485pxのセルが空白だとズレますが、 このセルにはテキストをたくさん書き込むので、 全てのページで横幅一杯に使いますので、 ズレているのだとは思いますが全ページで同じ幅に統一されるようになりました。 HTML言語については理解不足のまま終わりますが、 こちらの方がソースがシンプルなので、 これで行こうと思います。 それにしてもプロの方々でも試行錯誤しながらされているのですね^^; HTML言語やCSS言語自体に不備があるのでしょうか。 ともかくお陰さまで目先の問題はとりあえず解決しました。 皆様にはお手数をお掛けしまして大変申し訳ありません。 どうも本当にありがとうございました。助かりました。m(__)m

  • key-child
  • ベストアンサー率54% (25/46)
回答No.5
kuroneko1c
質問者

お礼

ご回答ありがとうございます。m(__)m ID名って、アルファベットで始めないといけなかったのですね。 だんだんID名を名付けるのが面倒になって、 どんどん簡素化しているうちに "1"とか"2"とかに省略してしまってました^^; ただ、それでもスタイルはしっかり適用されていて、 今まで気になったことはなかったんです。 で、今回も修正して試してみましたが、変化なしでした・・・。

noname#39970
noname#39970
回答No.4

tableタグ用styleとして border-collapse:collapse を追加するとどう?

kuroneko1c
質問者

お礼

度重なるご回答ありがとうございます。m(__)m やってみましたがダメでした。orz

  • buonodog
  • ベストアンサー率0% (0/1)
回答No.3

よくわからないのでHTMLのソースを載せていただけると答えやすいかもしれません。

kuroneko1c
質問者

お礼

ご回答ありがとうございます。m(__)m ソースをそのまま載せると個人の特定に繋がってしまうため、 お言葉に甘えまして、テキストを削除したものを載せてみました。 以下、HTMLソースのbodyタグの間のソースです。~~~ <div id="main"> <h1></h1> <table cellspacing="0" cellpadding="10"> <tr><td width="280px" bgcolor="khaki" valign="top"> <div id="1"> <h2></h2> <p></p> <p></p> <p></p> <h2></h2> <p></p> <p></p> <p></p> <p></p> </td> </div> <td></td> <td width="485px" valign="top" rowspan="2"> <div id="2"> <h2></h2> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p></p> <p><img src="・・・.jpg"></p> </div> </td> </tr><tr></tr> <tr><td colspan="3" bgcolor="lightblue" width="780px" align="center"> <p></p> </td></tr> </table> </div> ~~~~~~~~~~~~~~~ 以下が外付けのCSSです。~~~ body{text-align:center; margin:0;} #main{width:780px; text-align:left;} h1{margin:0 0 10px 0;} h2{font-size:90%; border-bottom:2px solid darkslategray; margin:10px 0; padding:0;} p{font-size:90%; padding:0; margin:5px 3px;} #2 p{font-size:95%; padding:3px; margin:1px 15px;} #1{margin:0; padding:0;} #2{margin:0; padding:0;} ~~~~~~~~~~~~~~~ ・・・.jpgの画像サイズは220×262です。 このソースの幅485pxのセル内に幅220pxの画像を貼ると、 セルが膨張してか、khaki色のセルが縮むのです^^; お手数をお掛けいたしますがご教授頂けると幸いです。m(__)m

noname#39970
noname#39970
回答No.2

そうそう それと <td> <img> </td> って書くと改行が空白になって隙間が空くからズレるよ ↓ <td><img></td> あるいは <td ><img ></td> imgをaタグで囲ってるならそれのstyle指定も忘れずに

kuroneko1c
質問者

お礼

ご回答ありがとうございます。m(__)m サイトの大きな枠組みに使っているので、 <td> <img> </td> どころか、 <td> <h2></h2> <h3></h3> <p></p> <p></p> <h3></h3> <p></p> <p></p> <h2></h2> <p></p> <p></p> <img> </td> のようになっています^^; 相当ヨコ長のソースになりましたが、 <td><img></td> の形につなげてみましたが、 それでもやっぱり変化ありませんでした。orz リンクを貼っている画像でも貼っていない画像でも同様の現象が起きます。 ちなみにwidthは485pxに設定してあるのですが、 幅200px程度の画像でもズレるんです。 ドラッグしてみても明らかにwidth幅より小さな画像なのですが・・。

noname#39970
noname#39970
回答No.1

img{margin:0;padding:0} どうなる?

kuroneko1c
質問者

お礼

ご回答ありがとうございます。m(__)m 早速やってみましたが変化ありませんでした。orz

関連するQ&A