OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

TABLEタグの幅指定

  • 暇なときにでも
  • 質問No.129065
  • 閲覧数792
  • ありがとう数2
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 84% (213/251)

テーブルの幅を厳密に指定したいのですが、
例えば以下のような1行2列のテーブルがあるとき、
<TABLE CELLSPACING=1 CELLPADDING=4 BORDER=0>
<TR>
<TD WIDTH=100>***</TD>
<TD WIDTH=100>***</TD>
</TR>
</TABLE>
このような場合にテーブルタグにWIDTH属性を加えるとすると、
100*2+4*4+1*3=219で、WIDTH=219が正確な値なのでしょうか?
よろしくお願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル14

ベストアンサー率 49% (1127/2292)

CELLPADDINGはセル枠とセル内容との余白だから、セル幅に含まれるでしょう。 だから4は足されません。 100*2+1*3=203 になるはず。 ...続きを読む
CELLPADDINGはセル枠とセル内容との余白だから、セル幅に含まれるでしょう。
だから4は足されません。
100*2+1*3=203 になるはず。
補足コメント
harisun

お礼率 84% (213/251)

ご回答ありがとうございます。
わたしも最初そう思っていたのですが、
実際やってみるともっと幅が伸びる気がするのです。
投稿日時 - 2001-09-03 18:07:11


  • 回答No.2
レベル14

ベストアンサー率 49% (1127/2292)

>>実際やってみるともっと幅が伸びる気がするのです。 テーブルの内容(テキスト、画像)が、セル幅に収まりきらない量なので伸びてしまっているのでは? テーブル幅は セル内容→セル幅指定→テーブル幅指定 の順で優先されます。 ...続きを読む
>>実際やってみるともっと幅が伸びる気がするのです。
テーブルの内容(テキスト、画像)が、セル幅に収まりきらない量なので伸びてしまっているのでは?
テーブル幅は
セル内容→セル幅指定→テーブル幅指定
の順で優先されます。
補足コメント
harisun

お礼率 84% (213/251)

またの書き込みありがとうございます。
おっしゃる状態にはなっていないです。
質問の仕方を少し変えさせていただきますと、
<table cellspacing=1 cellpadding=4 border=0>
<tr>
<td bgcolor=#cccccc><img src="img.gif" width=100 height=100></td>
<td bgcolor=#cccccc><img src="img.gif" width=100 height=100></td>
</tr>
</table>
セルに100x100の画像を入れるとします。
このとき、tdタグにあえてwidth属性を指定するときはいくつにすればいいのですか?
投稿日時 - 2001-09-03 20:05:06
  • 回答No.3
レベル8

ベストアンサー率 32% (17/52)

ディスプレーの幅、IEであればエクスプローラーバーの表示、非表示によって有効画面幅がユーザーの環境によって逐一変わるほか、ブラウザの解釈にも差がありますので、TABLE幅を完全に固定することはなかなか難しいようです。条件次第ではWIDTHを指定してもそれ以下の幅で表示されることがあります。また、<NOBR>も効かずに改行されてしまうことがあります。 邪道かもしれませんが、各列に背景と近い色の ...続きを読む
ディスプレーの幅、IEであればエクスプローラーバーの表示、非表示によって有効画面幅がユーザーの環境によって逐一変わるほか、ブラウザの解釈にも差がありますので、TABLE幅を完全に固定することはなかなか難しいようです。条件次第ではWIDTHを指定してもそれ以下の幅で表示されることがあります。また、<NOBR>も効かずに改行されてしまうことがあります。
邪道かもしれませんが、各列に背景と近い色のダミーの画像をサイズを絶対値(ピクセル)で指定して貼ればその列は画像幅以下にはなりません。それでもたとえばテキストの大きさを「最大」にされてしまえば幅が画像よりも広がってしまう可能性がありますので、スタイルシートで文字のサイズを固定すればよいかと思います。
ちょっと自信がありませんが、ご参考になればと思います。
お礼コメント
harisun

お礼率 84% (213/251)

ご回答ありがとうございます。
テーブル幅を完全に制御するのは難しいことなのですね。
画像のスペーサを入れるのはそのためなんですね。
投稿日時 - 2001-09-03 20:11:51
  • 回答No.4
レベル9

ベストアンサー率 47% (30/63)

はじめまして。 ◇border/cellspacing/cellpaddingの考え  100*2+4*4+1*3  →これは、あっています。   cellpaddingはセル内上下左右の空きであり、cellspacing罫線内スペース   で、まー罫線幅と思っていいもので、2列なら3本あることになります。  ●ただし、219ピクセル絶対かというとちょっと分かりません^^;   また ...続きを読む
はじめまして。

◇border/cellspacing/cellpaddingの考え
 100*2+4*4+1*3
 →これは、あっています。
  cellpaddingはセル内上下左右の空きであり、cellspacing罫線内スペース
  で、まー罫線幅と思っていいもので、2列なら3本あることになります。

 ●ただし、219ピクセル絶対かというとちょっと分かりません^^;
  また、1ピクセルの見た目の大きさが、IEとNetscape、またプラット
  (Windows/Mac)によって異なります。

◇<td>でのwidthの指定
 <td>のwidthは指定がない場合は、<td>内パーツの幅から算出されて自動的に
 その大きさになります。
 つまり、<td>内で<img>のwidth="100"のみを置いているのであれば、<td>にて
 width="100"を指定しても、しなくても同じ表示状態になります。

備考)
 Netscapeの<table>では基本的に全<td>にてwidthを指定するようにした方が
 よいです(書き癖とする)。
 IEの場合、<table>でwidth指定をし、例えば2列のテーブルを書いた場合、
 <td>1つに値を設定した場合は、<table>のwidthからのその<td>widthを引いた
 値が、もうひとつの<td>のwidthに自動的に設定(表示)されます。
 しかし、Netscapeの場合はそのような融通は利かずNetscapeの解釈の元に各
 <td>の幅設定がされてしまいます。
 なお、<table>や<td>のwidthを設定した上で、その中のパーツがそのwidthを
 超した場合は、ブラウザの解釈により妥当なwidthが設定(表示)されます。
 
 これはサンプルを作ってみて試して見るとおもしろいと思いますよ。

頑張ってくださいね。
補足コメント
harisun

お礼率 84% (213/251)

書き込みありがとうございます。
教えていただいたこと、よくわかりました。
それからいろいろ試してみたのですが、
tdに100x100の画像を入れてみたところ、
IEの場合、tdのheight属性はtd内のパーツプラスcellpaddingの幅みたいです。
つまり、cellpaddingが4とすると、height=108となるようです。
widthとheightの値が違っているのがどうも腑に落ちないのですが・・・。
Netscapeの場合はwidth,heightとも100のようです。
詳細をご存知でしたら、また書き込んでいただければ幸いです。
投稿日時 - 2001-09-04 12:24:35
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ