• ベストアンサー

テーブル<TD>の幅の固定

テーブルのTD幅をWIDTHで指定しているのですが、入力するテキストによって幅が動いてしまいます。 例) <table width="50">  <tr>   <td width="10">AAAAAAAAAAAAAAAA</td>   <td width="40">AA</td>  </tr> </table> というような場合、幅の狭い方のセル幅が広くなってしまいます。 また逆に広い方が何度も改行させられて出力されたり、出力させたいテキストによって、いかようにも幅が変更されてしまいます。 他のサイトなども色々調べてみて、半角英数字の場合は特に顕著ということも書かれてあったのですが、半角英数字の出力は必須なんです。 (全角文字の場合でも、完全に固定とはなりませんでした) やっぱり完全にテーブルのセル幅を固定するのはムリなのでしょうか? 何か解決方法はありますでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

こんにちは 連続したアルファベットは改行の対象になりません。 そのため<TD WIDTH=xxx>で指定しても、その幅を超える物を書いてしまうと駄目ですね。 日本語とかであれば、適当な所で改行されます。 昔のHTMLには<WBR>というタグがあったので、これが使えると思います。 A<WBR>A<WBR>A<WBR>A<WBR>A<WBR>A<WBR>A<WBR>A<WBR>A と言ったようにどこで改行されても良いようにしておけば良いでしょう。 もし、改行して欲しいところがあらかじめ解っているのであれば、普通にスペースを入れるかすれば、そこが改行の対象になります。

sky_blue
質問者

お礼

早速お返事頂いてありがとうございます。 やっぱりアルファベットはダメなんですね・・・ 色々試してみたのですが、教えて頂いた<wbr>が一番きちんと幅が固定されているように思います。 どうして半角文字を改行の対象にしなかったのか・・・ 伺っても、そうなのだからどうしようもないのですけれど、知りたいって思いました(^^; もし何かご存知でしたら、また教えて頂けたら幸いです。 <wbr>はとりあえず助かりました! ありがとうございました。

sky_blue
質問者

補足

申し遅れましたが、使用するブラウザはNN4.7です。

その他の回答 (2)

noname#107580
noname#107580
回答No.3

こんにちは! >どうして半角文字を改行の対象にしなかったのか・・・ 単純に英語とかの場合単語の途中で改行されると不便だからです。 例えば Netscape Netcenter Japan がセル幅が優先されて Netscape Netc enter Japan となると、今度は逆に単語の途中で改行しないためのタグが必要になってしまいます。 こちらの方が手間になるという事ではないでしょうか。 ですから、英語の場合スペースの所か、<WBR>によって改行候補になっている部分で改行されるようになっているのだと思います。

sky_blue
質問者

お礼

なるほど・・・言われてみれば当然のコト?なのに、聞かされるまで全然分かりませんでした! 半角英字を「英語」と認識してなかったのですねー(^^;) お返事ありがとうございました。

  • dattya
  • ベストアンサー率53% (61/115)
回答No.2

テーブルの中に透明画像を指定幅入れてみてはいかがでしょう? 1x1の透明.gifを用意し、width="10"なら <td width="10"><IMG height=1 src="透明画像のNAME.gif" width=10>AAAAA</td> この方法でしたら同様にたて幅も固定できます。

sky_blue
質問者

お礼

お返事ありがとうございます。 画像を挿入してみたのですが(スペーサーと呼ばれるようですね)、その分の幅も足されて表示されてしまって・・・ <td width="10"><IMG height=1 src="透明画像のNAME.gif" width=10>AAAAA</td>の場合、 画像(幅10)+文字列(AAAAA)分の幅となり、文字列も改行されなくて・・・ ブラウザのバージョンにもよるのでしょうか・・・ でもお返事ありがとうございました。 また覚えておいて使っていきたいと思います!