我确信这不应该是可能的。不知何故,我的 HTML 标记中的段落中的多个空格没有折叠。它们不是
,不在<pre>
标签中,没有设置为white-space: pre-wrap;
orwhite-space: pre;
并且行为不会通过强制style="white-space: normal;"
元素而改变。
我的理解是,这是保留空白的唯一三种方式,并且可以在 HTML 中显示两个或多个空格。
所以问题是:还有什么可能导致连续空格显示为多个空格?肯定还有别的东西——但在我知道它是什么之前我无法找到它,而且我找到的每个来源都只是在谈论
,<pre>
或者white-space: pre-wrap;
white-space: pre;
关键编辑:使用 Firebug,我尝试删除一些有问题的空格并再次输入。当从键盘删除并重新输入时,空格的行为正常 - 浏览器中没有意外的空格。因此,它必须是某个字符在视图源、文本编辑器等中显示为纯空格,但实际上行为类似于
. 它可能是什么,至关重要的是,我如何识别它以将其删除?违规输入的原始来源是所见即所得的编辑器 TinyMCE,所以我添加了那个标签......
更多详细信息:我有一些包含包含多个空格的段落文本的 HTML,如下所示(在 ...s 之间是直接从 Firefox 视图源复制的):
<p> blah blah.... nothing more than a ... blah blah </p>
如您所见,这些是常规空格,而不是
. 该文档在
其他地方,它们在视图源中显示为这样,因此它们不会
以某种方式伪装成源中的正常空间。
此外,CSS未设置为 white-space: pre;
或类似:
- Firebug 的“计算”面板没有列出与空格相关的规则。
- 在段落上强制 a
white-space: normal;
对空格没有影响。该规则确实显示在 Firebug 'Computed' 面板中,因此它正在应用。 - 应用于
white-space: pre-wrap;
段落会导致其他更改,但不会更改这些多个顺序空间。例如,它会在选定文本段落中的每个换行符的末尾显示一个额外的空格。所以它绝对不会以某种方式被悄悄地设置为white-space: pre-wrap;
文档中没有 <pre>
标签,任何地方。在<pre
源码中查找什么也没找到。
因此,它应该在浏览器中显示,每个单词之间有一个空格。它没有。它显示多个空格,就好像它是<pre>
or
或 white-space: pre;
。但这些都不是。
一定有其他方法可以获得 white-space: pre;
我不知道的类似效果。还有哪些其他方法可以预先格式化空格并阻止多个空格折叠?这可能是什么原因造成的。
一些背景说明:
- 在哪些浏览器中看到?Firefox 16.0.2、谷歌浏览器 23.0.1271.95 m (Windows)
- 如果您不希望它可见,为什么在标记中有双倍空格?我正在为 CMS 进行前端/设计工作,用户将通过 TinyMCE 所见即所得(不可协商)从 Word 和 PDF 中输入文本。因此,标记将是混乱的。修复 CMS 文本格式化程序以清理空白和清除标记超出了本工作的范围。
- 文档类型?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML+RDFa 1.1//EN">
- 你确定有多个空格?当然,您可以在浏览器前端的单词之间选择一个、两个,在某些情况下是三个空格。
- 我可以看到所有的代码吗?抱歉,这是一个预发布网站,不公开。随意询问特定的 CSS 规则、HTML 标签、加载的 javascript 内容等。