<PRE>タグの中身がwrap指定しても折り返されない問題の対処策

2010年2月14日

<PRE>タグを使っておけば、ソースコードやHTML文なども簡単にそのまま記述 できる。。。と思い込んでいる人はいませんか?また、ソースコードやHTMLは一行が長くなりますよね。 表示領域をはみ出してソースを表示してしまっていたり、横スクロールが表示されている Webページをよく見かけます。そんなときは、HTMLリファレンスなどを見ると、wrap属性を 指定しなさいと書いてあります。

しかし、このwrap属性がくせ者でして、PhactoryもHTML文をブログに掲載する際、 <PRE wrap> ... </PRE>と記述して楽しようと企んだのですが、 Firefoxでは期待通り長いHTML文書でも折り返してくれるのに、IEでは無理。。。 となることに先日気がつきました。

これに対する対策としては、各ブラウザが自動折り返ししてくれるように設定する必要があります。 具体的には以下のように記述して<PRE>タグを使用することで、 自動的に折り返しをしてくれるようになります。

1
2
3
4
5
6
7
pre {
   white-space: pre-wrap;
   white-space: -moz-pre-wrap;
   white-space: -pre-wrap;
   white-space: -o-pre-wrap;
   word-wrap: break-word;
 }