在IE(7)中使用白色空间样式的跨度应用_past_ span of span

时间:2009-03-19 15:05:38

标签: css internet-explorer whitespace

我们有一个应用程序,用户可以在富编辑控件中输入“注释”(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">

3 个答案:

答案 0 :(得分:0)

您使用的是标准模式DOCTYPE吗?在Quirks模式下,IE错误地仅将“空白”应用于块元素。 (我无法让它将白色空间泄漏到跨度之外,它只是根本不起作用。)

  

我无法控制输入的内容。

允许输入原始HTML内容是不常见的;在这种情况下,你无法真正解决任何浏览器的怪异问题!

答案 1 :(得分:0)

1)是的,你是对的。

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

希望有所帮助

达科

答案 2 :(得分:0)

我不确定你想要用一个带有pre的样式的空间来实现你的目标。如果你试图让句子在那里有一个空格而不是自动换行,那么就把整个div放在无包装样式上。如果您想要的只是一个空格,请将html实体直接放在两个单词之间,它们不会分开。或者,如果您尝试创建大于单个空格的任意空间,请忘记pre,并将该跨度赋予宽度。