半角文字を自動改行させたい
- 0 名前: Natto : 2004/05/13 14:11
- BBSのデザインをしていて困ったことが起きました。
半角文字を延々とうつと、
たとえ画面端っこにいこうと、テーブル枠を越えようと、
ブラウザは自動改行してくれないようです。
例:aaaaaaaa......
これだと長いURL、こういった荒らしが起きた際にデザインが崩れてしまいます。
原因は半角文字の改行は単語単位で行うからのようです。
なんとか長すぎる単語をうまく自動改行する方法はないでしょうか?
- 1 名前: Sinryow : 2004/05/15 14:04 [URL]
- <wbr>タグを使うとよいです。
http://tohoho.wakusei.ne.jp/html/wbr.htm
※↑のページの一番下に「Internet Explorer で <wbr> を有効にするには、必ず <nobr>〜</nobr> の内部で使用しなくてはならないようです。」と書いてありますが,私のところ(IE6.0)ではそういう現象はおきませんでした
BBSでやるのでしたら,投稿記事を適当な文字数(100文字位?)ごととかに区切って,間に<wbr>を加えていくとよいでしょう。
- 2 名前: Natto : 2004/05/15 14:32
- お返事ありがとうございました。
<wbr>を知らなかったので、非常に参考になりました。
Netscape7.1でも、上記サイトに書いてあるようなことは起こりませんでした。
100文字ごとに区切る・・・少しPerlを勉強する必要があるようです(笑)
- 3 名前: Sinryow : 2004/05/15 23:46 [URL]
- こんなのでいかがでしょう?
# $bufに100文字ごとに<wbr>を入れて$outに返す
$out="";
$len=length($buf)/100;
for($i=0;$i<$len;$i++){
$out.=substr($buf,$i*100,100)."<wbr>";
}
$out.=substr($buf,$i*100);
- 4 名前: Natto : 2004/05/18 15:26
- ありがとうございます!
試してみましたところ、きっちり<wbr>タグが入りました!
・・・ですが、ひとつ問題がありました。
文章中のタグにかかった場合、タグが正常に作動しなかったのです。
つまり、
99〜102文字目に<br>があった場合、<b<wbr>r>となってしまい、表示がおかしくなる
のです。
<br>以外のタグは無効になるようにしてあるので、これだけが解決できれば良いはずなのですが・・・。
試行錯誤してます。
- 5 名前: Sinryow : 2004/05/23 22:56 [URL]
- 調べてみたのですが
スタイルシートで「word-break:break-all」を設定すれば一発のようです。
http://tohoho.wakusei.ne.jp/css/reference.htm#word-break
- 6 名前: Natto : 2004/05/24 08:36
- なんと。うまくいきました。
ただ、ブラウザによっては対応してないのがネックではありますが。
(Netscapeは駄目っぽい。)
ひとまずこれはこのへんで妥協して、
いろいろ考えつつ、他の部分を改善していこうと思ってます。
ありがとうございました。