7

我对 HTML 的最大排版挫折之一是它破坏连体空白的方式。例如,如果我有:

<span>Following punctuation rules.  With two spaces after the period.  </span>

句点后面的两个空格之一将被视为无关紧要的空格并被删除。我当然可以通过以下方式强制空格变得重要:

<span>Following punctuation rules.&nbsp; With two spaces after the period.  </span>

但这只是让我感到厌烦,我通常不会打扰。有没有人会自动将重要的空白插入到用于网页的外部内容提交中?

4

8 回答 8

7

如果您真的希望保留空白,请尝试使用 css 属性: white-space: pre;

或者,您可以在标记中使用 <pre> 标记。

顺便说一句,HTML 浏览器通常忽略空白是一件好事,它允许我们拥有清晰格式的源代码,而不会影响输出。

于 2008-08-19T15:33:49.630 回答
6

For your specific example, there is no need to worry about it. Web browsers perform typographical rendering and place the correct amount of space between periods and whatever character follows (and it's different depending on the next character, according to kerning rules.)

If you want line breaks, <br/> isn't really a big deal, is it?


Not sure what's worthy of a downmod here... You should not be forcing two spaces after a period, unless you're using a monospace font. For proportional fonts, the rederer kerns the right amount of space after a period. See here and here for detailed discussions.

于 2008-08-19T16:59:53.047 回答
2

它可能不是很优雅,但我将 CSS 应用于 <pre> 标记。

总是有“空白” CSS 属性,但它可能有点碰碰运气。

于 2008-08-19T15:36:44.710 回答
1

您可以使用样式化的 pre 块来保留空格。大多数所见即所得的编辑器还插入   为你...

总的来说,浏览器忽略空格是件好事。只需亲自查看该网站上的源代码,并想象如果显示每个空间,该网站会看起来多么疯狂。

于 2008-08-19T15:31:59.277 回答
1

看一下pre 标签。它可能会做你想做的事。

于 2008-08-19T15:39:58.807 回答
0

你最好使用 white-space: pre-wrap 而不是 white-space: pre 或   以您的示例为例,后一种解决方案可以在“规则”上开始新的一行。 仅仅因为你的n on- b reakable space 到达终点。

于 2008-08-19T15:43:17.990 回答
0

根据您的需要,PRE 标签可以是一个有效的解决方案。但是,如果您尝试在整个站点的句子中使用 2 空格规则,您很快就会发现 PRE 标签保留的其他字符是换行符/回车符(或缺少)会破坏您尝试的任何样式去做。

一般来说,我倾向于忽略“句子后有 2 个空格”的规则,或者如果你坚持使用它,我会坚持使用  ,但你偶尔会遇到 Nicolas 所说的问题。

于 2008-08-19T16:25:02.367 回答
0

There is a page regarding this topic on webtypography.net. That site has many other interesting things about creating text for the web from the point of view of typography, things that web page designers often don't even think about. It's worth reading.

于 2008-08-19T19:27:42.030 回答