我发现浏览器(我只测试了 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
veryveryveryveryveryveryveryvery
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/