我们有一个应用程序,用户可以在富编辑控件中输入“注释”(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)能以某种方式解决这个问题吗?请记住,我无法控制输入的内容。它是从Mac w / Safari进入并在IE中查看的。
编辑:相关网页上的文档类型为:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
答案 0 :(得分:0)
您使用的是标准模式DOCTYPE吗?在Quirks模式下,IE错误地仅将“空白”应用于块元素。 (我无法让它将白色空间泄漏到跨度之外,它只是根本不起作用。)
我无法控制输入的内容。
允许输入原始HTML内容是不常见的;在这种情况下,你无法真正解决任何浏览器的怪异问题!
答案 1 :(得分:0)
1)是的,你是对的。
2)我在Telerik控件方面遇到了很多问题,特别是RTE更改了输入的原始HTML。我建议您检查数据库,看看那里存储的是什么HTML。
希望有所帮助
达科
答案 2 :(得分:0)
我不确定你想要用一个带有pre的样式的空间来实现你的目标。如果你试图让句子在那里有一个空格而不是自动换行,那么就把整个div放在无包装样式上。如果您想要的只是一个空格,请将html实体直接放在两个单词之间,它们不会分开。或者,如果您尝试创建大于单个空格的任意空间,请忘记pre,并将该跨度赋予宽度。