html - 什么是可破坏的非空白字符

标签 html css browser unicode line-breaks

我发现浏览器(我只测试了 Chrome 行为)会在单词中的某些字符上换行,以防止文本溢出(在标准行为中,因此:word-wrap:正常)。我不考虑可破坏的空白,而是考虑这些具体的 Unicode 字符:

  • 连字符(-)
  • 软连字符 ()
  • 破折号 (-)
  • 长划线 (—)
  • 全 Angular 加号/减号(+/-)
  • 减号 (−)

所以问题......

  • 还有其他角色具有此属性吗?
  • 为什么是这些字符而不是任何其他标点字符(如点、逗号或斜线)?
  • 我知道为什么是连字符和破折号,但为什么是加号和减号而不是乘法(×)?
  • 这种行为在不同浏览器中是否一致?采用 HTML/CSS 或 Unicode 进行标准化?

有一个try :

<div style="width: 50px">
veryvery-veryvery-veryvery-veryvery
veryvery–veryvery–veryvery–veryvery
veryvery—veryvery—veryvery—veryvery
veryvery­veryvery­veryvery­veryvery
veryvery−veryvery−veryvery−veryvery
veryvery+veryvery+veryvery+veryvery
long
</div>

最佳答案

HTML/CSS 文本中的中断通常发生在“soft wrap opportunities ”处,但字符提供此类机会的具体行为尚未标准化。相反,CSS 规范遵循其他文本格式规范(例如特定于语言的指南)。

但是,一个流行的通用实现是 Unicode Line Breaking Algorithm 。该算法使用一组规则检查相邻字符的 Unicode 属性,以创建、强制或禁止断点。不可能列出可以造成中断的单个字符的完整列表,因为字符出现的上下文是一个相关因素。

关于html - 什么是可破坏的非空白字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37617959/

相关文章:

ios - 从暂停状态 iOS 恢复 safari

html - 如何围绕导航创建径向渐变?

html - 为什么 chrome 不遵循 CSS 优先顺序?

css - 垂直居中几乎适用于所有浏览器,但不适用于 IE7

browser - 浏览器列表及其默认受信任的根证书颁发机构

javascript - 如何让 Raphael 兼容 IE8 及更低版本?

html - 将 <br> 放在水平 <ul> 中会破坏它吗?

html - Yamm 导航栏和正文之间的间距问题

html - 锚定在整个元素的矩形中

css - 如何覆盖超过 2 个 div(如果可能的话使用 bootstrap)?