- ベストアンサー
テーブル<TD>の幅の固定
テーブルのTD幅をWIDTHで指定しているのですが、入力するテキストによって幅が動いてしまいます。 例) <table width="50"> <tr> <td width="10">AAAAAAAAAAAAAAAA</td> <td width="40">AA</td> </tr> </table> というような場合、幅の狭い方のセル幅が広くなってしまいます。 また逆に広い方が何度も改行させられて出力されたり、出力させたいテキストによって、いかようにも幅が変更されてしまいます。 他のサイトなども色々調べてみて、半角英数字の場合は特に顕著ということも書かれてあったのですが、半角英数字の出力は必須なんです。 (全角文字の場合でも、完全に固定とはなりませんでした) やっぱり完全にテーブルのセル幅を固定するのはムリなのでしょうか? 何か解決方法はありますでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは 連続したアルファベットは改行の対象になりません。 そのため<TD WIDTH=xxx>で指定しても、その幅を超える物を書いてしまうと駄目ですね。 日本語とかであれば、適当な所で改行されます。 昔のHTMLには<WBR>というタグがあったので、これが使えると思います。 A<WBR>A<WBR>A<WBR>A<WBR>A<WBR>A<WBR>A<WBR>A<WBR>A と言ったようにどこで改行されても良いようにしておけば良いでしょう。 もし、改行して欲しいところがあらかじめ解っているのであれば、普通にスペースを入れるかすれば、そこが改行の対象になります。
その他の回答 (2)
こんにちは! >どうして半角文字を改行の対象にしなかったのか・・・ 単純に英語とかの場合単語の途中で改行されると不便だからです。 例えば Netscape Netcenter Japan がセル幅が優先されて Netscape Netc enter Japan となると、今度は逆に単語の途中で改行しないためのタグが必要になってしまいます。 こちらの方が手間になるという事ではないでしょうか。 ですから、英語の場合スペースの所か、<WBR>によって改行候補になっている部分で改行されるようになっているのだと思います。
お礼
なるほど・・・言われてみれば当然のコト?なのに、聞かされるまで全然分かりませんでした! 半角英字を「英語」と認識してなかったのですねー(^^;) お返事ありがとうございました。
- dattya
- ベストアンサー率53% (61/115)
テーブルの中に透明画像を指定幅入れてみてはいかがでしょう? 1x1の透明.gifを用意し、width="10"なら <td width="10"><IMG height=1 src="透明画像のNAME.gif" width=10>AAAAA</td> この方法でしたら同様にたて幅も固定できます。
お礼
お返事ありがとうございます。 画像を挿入してみたのですが(スペーサーと呼ばれるようですね)、その分の幅も足されて表示されてしまって・・・ <td width="10"><IMG height=1 src="透明画像のNAME.gif" width=10>AAAAA</td>の場合、 画像(幅10)+文字列(AAAAA)分の幅となり、文字列も改行されなくて・・・ ブラウザのバージョンにもよるのでしょうか・・・ でもお返事ありがとうございました。 また覚えておいて使っていきたいと思います!
お礼
早速お返事頂いてありがとうございます。 やっぱりアルファベットはダメなんですね・・・ 色々試してみたのですが、教えて頂いた<wbr>が一番きちんと幅が固定されているように思います。 どうして半角文字を改行の対象にしなかったのか・・・ 伺っても、そうなのだからどうしようもないのですけれど、知りたいって思いました(^^; もし何かご存知でしたら、また教えて頂けたら幸いです。 <wbr>はとりあえず助かりました! ありがとうございました。
補足
申し遅れましたが、使用するブラウザはNN4.7です。