在浏览器中对句点进行特殊换行处理?

时间:2014-07-03 01:35:26

标签: html line-breaks

我今天正在测试一个新的EPUB读卡器,当时我注意到一些奇怪的东西。如果文本中有省略号呈现为. . .,则读者将这些句点视为一个单元,即使它们之间存在空格。所以我启动Chrome以打开底层HTML文档,我发现Chrome具有相同的行为,以及iBooks和Readium。

我似乎无法在任何地方找到这个记录 - 浏览器中是否有特殊的句点处理?我会假设空格始终是换行时的分隔符,但这似乎反驳了这种假设。

1 个答案:

答案 0 :(得分:0)

HTML用户代理可能会在换行符中对句点(和其他字符)进行特殊处理。这没有在规范中定义。特别是,HTML(或CSS)规范要求或建议应用Unicode line breaking rules。但是,这些规则的某些部分已在不同程度上在浏览器中实施,由于浏览器的不同而导致confusion,并且规则并不适合所有场合。

特别是,句点“。”或U + 002E FULL STOP是正式的,在Unicode规则(UAX #14)中有换行类IS(Infix Separator)。正如一个口头笔记所说,“当不在数字语境中使用时,中缀分隔符是句子结尾的标点符号。因此,他们总是防止休息。“正式这在规则LB13中有规定。这意味着 ”。 。 “保持在一起,在第一个时期之前也不允许换行(除非得到更高优先级规则的允许或强制)。

但是,据我所知,这在Web浏览器中一般没有实现(在Win 7上的Chrome,Firefox,IE上测试过),因此在您的文档或上下文中可能会有一些特殊内容,或者您​​可能使用不同版本的Chrome。

关于在一段时间之前没有破坏的规则已经在IE中实现部分。如果你有“foo .bar”,在句号之前有一个正常的空格,IE就不会破坏表达式。