为什么设置hyphens:auto后lang="en"的连字符断字功能不生效?
断字功能未生效的核心原因
- 首个
lang="en"对应的文本Kindofverylongheadlineevenbiggerthanimagined是人工拼接的无意义连续字符串,不属于任何英文词典收录的真实单词。hyphens: auto的自动断字完全依赖浏览器内置的对应语言词典,只能对真实存在的单词按音节拆分,不存在的词汇无法触发拆分逻辑。而第二个lang="en"对应的Internationalization是标准英文单词,满足条件时可以正常断字。 - 缺少浏览器厂商前缀兼容:当前部分内核浏览器对
hyphens属性的支持需要添加专属前缀,未加前缀会导致属性无法被识别,功能失效。修正后的CSS写法如下:
h1 { font-size: 2em; -webkit-hyphens: auto; /* 适配Chrome、Edge、Safari等webkit内核浏览器 */ -moz-hyphens: auto; /* 适配旧版火狐浏览器 */ hyphens: auto; } div { max-width:200px; background: aqua; }
- 部分老旧浏览器仅识别HTML根节点的
lang属性,不会读取子元素的语言声明,可在<html>标签上添加lang属性做全局声明提升兼容性。
内容的提问来源于stack exchange,提问作者Maximilian Köhler
相关产品推荐
相关产品推荐

