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。

所以,问题:

1)我是否正确认为该white-space属性应该只应用于跨度?

2)这可以以某种方式解决吗?请记住,我无法控制输入的内容。它是从带有 Safari 的 mac 输入并在 IE 中查看的。

编辑:相关页面上的文档类型是: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

4

3 回答 3

0

我不确定你想用 pre 作为样式的跨度空间来实现什么。如果你想让句子有一个空格而不是自动换行,请将 no-wrap 样式放在整个 div 上。如果你想要的只是一个空格,将html实体   直接放在两个单词之间,它们不会分开。或者,如果您试图创建一个大于单个空间的任意空间,请忘记 pre 并给该跨度一个宽度。

于 2009-03-19T22:41:33.987 回答
0

Are you using a Standards Mode DOCTYPE? In Quirks Mode, IE incorrectly applies ‘white-space’ only to block elements. (I couldn't get it to leak the white-space out of the span though, it just simply didn't work.)

I'm not in control of the content being entered.

It's unusual to allow raw HTML content to be entered; in that case you can't really fix up any browser weirdnesses!

于 2009-03-19T17:11:21.067 回答
0

1)是的,你是对的。

2) 我在 Telerik 控件方面遇到了很多问题,特别是 RTE 更改了输入的原始 HTML。我建议您检查您的数据库并查看其中存储了哪些 HTML。

希望有帮助

达科

于 2009-03-19T19:32:05.910 回答