什么是正常的HTML换行符?

时间:2017-01-28 13:09:10

标签: html whitespace line-breaks definition soft-hyphen

我正在寻找可能破坏HTML行(如空格)的caracters和元素列表,但我无法在Internet上找到任何页面,并定义了正常的HTML换行符。 我找到了那些:

  • 可分割的空间,
  • 标签,
  • 新行
  • 零宽度空间(亚洲)
  • less" - "
  • 软连字符

我并不期待它会在" pre"标签,当然!

1 个答案:

答案 0 :(得分:4)

如果我理解正确,您想知道哪些字符创建了soft wrap opportunity,也就是说,它们允许换行以适应度量中的内容。

答案是它没有完全定义,取决于语言:

  

在大多数书写系统中,在没有连字符的情况下,soft wrap opportunity仅出现在单词边界处。许多这样的系统使用   空格或标点符号用于明确区分单词,soft wrap opportunities可以通过这些字符标识。脚本如   但是,泰国人,老挝人和高棉人不使用空格或标点符号   单词。虽然零宽度空间(U + 200B)可以用作   这些脚本中的显式单词分隔符,这种做法不是   常见的。

     然而,

[...] CSS没有完全定义软包装机会发生的位置   提供了一些控制来区分常见的变化。

您可以使用某些CSS属性(如

)部分控制此行为
  • line-break,用于指定包装如何与标点符号和符号进行交互
  • word-break,这可能允许字母之间的软包装机会
  • hyphens,控制是否允许连字符创建更多软包装机会
  • overflow-wrap/word-wrap,可以允许单词内的任意中断以防止溢出

如果您想要创建软包装机会的完整字符列表,可以使用JS:



var log = console.log;
console.log = Function.prototype;
console.config({maxEntries: Infinity});
console.log = log;

var test = document.createElement('div');
test.className = 'test';
document.body.appendChild(test);
for (var i=0; i<0xffff; ++i) {
  var char = String.fromCharCode(i);
  test.textContent = 'a' + char + 'b';
  if (test.clientHeight > 1) {
    console.log(i.toString(16) + ': ' + JSON.stringify(char));
  }
}
document.body.removeChild(test);
&#13;
.test {
  width: 0;
  line-height: 1px;
}
div.as-console-wrapper {
  max-height: 100%;
}
&#13;
&#13;
&#13;