- ベストアンサー
文字列$strをブラウザで表示させる場合
右側にいっぱいになったら水平スクロールバーを発生させずに下に折り返すというものを使いたいのですが print "<div>$str</div>"; だと$strが長い文字列の場合には水平スクロールバーが出てしまいます 折り返すようにするためにはどんなタグを使ったらいいでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
補足回答。 参考URLですがword-breakよりword-wrapの方が適切だったかも。(IE使ってないのでどっちがどっちだかわからない・・・)
その他の回答 (2)
- steel_gray
- ベストアンサー率66% (1052/1578)
以前の質問とリンクして考えると $str =~ s/\s/ /g; が問題だと思います。 ブラウザは半角の英字が連続すると単語が続いているものとして改行が入らないようにする仕様になっています。 通常 スペース(や一般的に区切りと判断できる記号)が適度に混在していれば、スペース部分で折り返すのですが ではスペースの代わりとはならないようです。 \s といっても改行は別で変換しているし本当のスペースかタブぐらいしかフォームには混入してこないと思うので $str =~ s/\s/ /g; ↓ $str =~ s/\t/ /g; にしてもいいんじゃないでしょうか。 以上が全然まとはずれで、とにかく幅に合わせて自動改行して欲しいというならIE限定になりますが、スタイルシートでそのように指定することも可能です。→参考URL
- betagamma
- ベストアンサー率34% (195/558)
Perlでしょうか? まず、HTMLのカテゴリに書くのは、カテゴリ違いだと思いますが・・・ $str~=s/\n/<br>/; とでもして、改行を<br>に変換すればいいのではないでしょうか?とにかく、改行の代わりに<br>を使えば、HTMLでは改行しますが。
補足
ありがとうございます ウィンドウサイズが変わっても自動的にウィンドウ幅で改行し水平スクロールが出ないようにするためには<br/>による方法は無理だと思いますが他のタグ等はないでしょうか?
お礼
ありがとうございます ie専用仕様というのが残念ですね 参考サイトはブックマークさせていただきました