0

ユーザーがリッチ エディット コントロールに「メモ」を入力できるアプリケーションがあります (Telerik の RedEditor ですが、ここでは関係ありません)。メモの中央にがある Safari からユーザーにメモを入力してもらい<span></span>、そのスパンにはスタイルがwhite-space:preあり、メモの HTML は次の形式でした:

<div> This is a note <span class="Apple-tab-span" style="white-space: pre; ">   </span> and here's more of the note. </div>

シンプルに、スタイルはスパンに適用する必要があり、スパンには 4 つのスペースがありました。結果の出力には 4 つのスペースが含まれているはずです。

これが問題です。IE は、そのwhite-space: pre;スタイルをスパンだけでなく、囲んでいる div にも適用しているようです! したがって、この長い行はスパン内にないため折り返されるべきでしたが、行がページに収まるまでドキュメントを押し出しました。

何が欠けていますか。IE に問題があることは知っていますが、これは IE でも正しくないようです。

だから、質問:

white-space1)属性がスパンにのみ適用されるべきだったというのは正しいですか?

2) これはどうにかして解決できますか? 覚えておいてください、私は入力されたコンテンツを制御できません. Mac w/Safari から入力し、IE で表示しています。

編集: 問題のページの doctype は次のとおりです。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

4

3 に答える 3

0

1) はい、あなたは正しいです。

2) Telerik コントロール、特に入力された生の HTML を変更する RTE に多くの問題がありました。データベースをチェックして、そこに保存されている HTML を確認することをお勧めします。

それが役立つことを願っています

ダルコ

于 2009-03-19T19:32:05.910 に答える
0

pre をスタイルとするスパン内のスペースで何を達成しようとしているのかわかりません。文に単語の折り返しではなくスペースを入れようとしている場合は、div 全体に折り返しなしのスタイルを設定します。スペースだけが必要な場合は、html エンティティ   を 2 つの単語の間に直接配置すると、単語がバラバラになりません。または、単一のスペースより大きい任意のスペースを作成しようとしている場合は、pre を忘れて、そのスパンに幅を与えてください。

于 2009-03-19T22:41:33.987 に答える
0

標準モードの DOCTYPE を使用していますか? Quirks モードでは、IE はブロック要素にのみ「空白」を誤って適用します。(ただし、スパンから空白を漏らすことはできませんでしたが、単に機能しませんでした。)

入力されたコンテンツを制御することはできません。

生の HTML コンテンツの入力を許可するのは珍しいことです。その場合、ブラウザの奇妙な点を実際に修正することはできません!

于 2009-03-19T17:11:21.067 に答える