
表示枠に収まらない改行が入っていない長い文字列を<pre>タグで表示させると、IEでは表示枠の横幅で折り返して表示してくれるのですが、firefoxだと折り返して表示してくれません。
firefoxでも正常に折り返して表示させる方法はないでしょうか?
cssには以下のように書いています。
pre {
white-space: -moz-pre-wrap;
white-space: -pre-wrap;
white-space: -o-pre-wrap;
white-space: pre-wrap;
word-wrap: break-word;
}
No.4
- 回答日時:
そもそも<pre>タグは整形済みであることを示すタグです。
つまり、折り返してしまっては意味がないと思うのですが。よって、<pre>や<code>のような折り返さないで見せた方が良い要素は、CSSのoverflowプロパティを用いて、スクロールバーを出した方がよろしいかと思います。
実装の仕方は以下の通り
▼HTMLソース
<div>
<pre>
<code>プログラムソース</code>
</pre>
</div>
▼CSSソース
div { overflow : auto ; }
pre { overflow : auto ; }
※基本的にpreのみoverflowを指定すれば良いのですが、ブラウザによって解釈が違うので、overflowは<div>に指定するのが好ましいようです。
私はこの方法で、IE,NN,FireFox,opera,Mozillaに対応しています。Mac版IEでも多分表示されるはずです。
No.3
- 回答日時:
複雑な書き方をしているのが少々・・?なのですが^^;
例:
<style type="text/css">
<!--
pre { white-space:normal;
width: 300px;
color:#ff0000;
background-color: #ccffff;
word-wrap: break-word;
}
-->
</style>
という単純な記述だと、
Mac Safari2.0.4、Firefox1.5.0.6、Opera7.53、Opera9.0、Netscape7.2、Camino、IE5.2.3できちんと色付き表示枠のボックス内で折り返しが入ります。
(すみません今Macでログインしてるんで・・・^^;
旧バージョンとの互換の為に複雑な記述にされているのかもしれませんが、質問者様が書かれたやり方では、Mac側のブラウザではSafariのみが折り返して表示されていますね。
No.2
- 回答日時:
いえ、<pre>タグはそのままで、CSS内のwhite-spaceプロパティに適用するpreの値をnormalに変えるとFirefoxでもボックス内で自動改行されるはずです。
このやり方では、不都合が出てしまいますか?
この回答への補足
たびたびありがとうございます。
以下のようにやってみたのですが、やはりfirefoxでは自動改行されませんでした。
pre {
white-space: -moz-normal-wrap; /* Mozilla */
white-space: -normal-wrap; /* Opera 4-6 */
white-space: -o-normal-wrap; /* Opera 7 */
white-space: normal-wrap; /* CSS3 */
word-wrap: break-word; /* IE 5.5+ */
}
No.1
- 回答日時:
そもそもwhite-spaceプロパティは、ブラウザによって対応が違うので、IEが正常でFirefoxがおかしいという事ではありませんが・・・・^^;
後、W3C標準と互換で表示が変わります。
記述をぱっと見た感じでは互換モードでIEがpreの値が適用されている時にうまく表示出来ない不具合を正常と勘違いされている感じがします。
preの代わりにnormalを適用すればFirefoxでもボックス内で折り返してくるはずですが。
この回答への補足
ご回答ありがとうございます。
>preの代わりにnormalを適用すればFirefoxでもボックス内で折り返してくるはずですが。
説明不足でした。すみません。
<pre>を使いたい理由は、<textarea>で入力した内容を改行も含めてそのまま表示したかったからなのです。改行コードを<br>に変換すればいいのですが、タグを入力された場合は、内部処理でタグを無効にしているので、その方法も使えないという状況なのです^_^;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- TOEFL・TOEIC・英語検定 英文法(他動詞・自動詞の解釈)you pre-register online 1 2023/03/09 00:18
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- その他(インターネット接続・インフラ) DELLのPCにPre-Boot System Performance Checkの表示が出てしまう 1 2023/04/18 11:22
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- 英語 Pre-existing periapical pathology, when the apices 1 2023/04/27 22:27
- オープンソース cssで中央寄せ 1 2023/05/19 06:25
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSSのtransform: translate(-50...
-
【外部CSS】 マージン設定がIE...
-
インラインフレームのボーダー...
-
SEO対策について-<h1>タグ-そ...
-
chromeだけbody直下に空白が開く
-
端から端まで横線を引きたい
-
<h1>タグの後の行間を詰めたい。
-
入れ子にしたfloatのclear
-
text-alignの解除の方法
-
なぜ左に寄っているの?
-
formタグ下にできる隙間を埋めたい
-
<pre>で折り返させる方法を教え...
-
Excelの列や行の幅を表示...
-
エクセルでサイズに合ったもの...
-
aaa!cafeにて
-
助けてください><IE上で1pxの...
-
ホームページビルダー9でロール...
-
二つのテーブルを横に並べて表...
-
表組について
-
htmlでテーブル内にテキストボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSSのtransform: translate(-50...
-
aタグに直接style=""で:hoverを...
-
text-alignの解除の方法
-
なぜ左に寄っているの?
-
端から端まで横線を引きたい
-
<h1>タグの後の行間を詰めたい。
-
FireFoxで見るとブラウザの幅に...
-
HTMLフォームのSELECTの幅を一...
-
INPUT TEXT内の文字位置を指定...
-
macとwindowsのレイアウト崩れ...
-
インラインフレームの表示位置...
-
chromeだけbody直下に空白が開く
-
htmlのタグ間の謎の空白
-
iPhone用のサイトの文字がずれ...
-
ホームページビルダー 空白の...
-
CSSの設定
-
CSSでh1とその下の文字との行間...
-
外部CSSがFireFoxで反映されません
-
表をページ中央に表示
-
topmarginをネスケで
おすすめ情報