hyphens

Avatar of Sara Cope
Sara Cope

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

hyphens 属性控制块级元素中文本的连字符。您可以完全阻止连字符的出现,允许其出现,或者仅在存在某些字符时允许其出现。

请注意,hyphens 对语言敏感。其查找断字机会的能力取决于语言,该语言在父元素的 lang 属性中定义。并非所有语言都得到支持,并且支持情况取决于具体的浏览器。

语法

.element {
  hyphens: none | manual | auto
}

hyphens: none

单词在换行处永远不会使用连字符,即使单词内的字符暗示了连字符可以或应该出现的位置。

hyphens: manual

单词仅在换行处断开,换行处单词内的字符暗示了换行机会。有两个字符暗示了换行机会

  • U+2010 (连字符):“硬”连字符表示可见的换行机会。即使行实际上未在该点断开,连字符仍会呈现。字面意思是“ - ”。
  • U+00AD (软连字符):不可见的“软”连字符。此字符不会以可见方式呈现;相反,它建议浏览器在必要时可以选择断开单词的位置。在 HTML 中,可以使用 &shy 插入软连字符。

hyphens: auto

单词可以在适当的连字符位置断开,这些位置可以由单词内的连字符字符(参见上文)确定,也可以由语言适当的连字符资源自动确定(如果浏览器支持或通过 @hyphenation-resource 提供)。

如果存在,单词内的条件连字符字符在确定单词内的连字符位置时优先于自动资源。

hyphens: all

已弃用,请勿使用。这仅在规范中临时用于测试。

演示

下面的演示包含许多段落,并且所有内容都设置为 hyphens: auto; 以演示连字符的概念。父元素上的 lang 属性设置为 en

浏览器支持

此浏览器支持数据来自 Caniuse,其中包含更多详细信息。数字表示浏览器在该版本及更高版本中支持该功能。

桌面

ChromeFirefoxIEEdgeSafari
886*10*12*5.1*

移动/平板电脑

Android ChromeAndroid FirefoxAndroidiOS Safari
1271271274.2-4.3*

Safari 5+ 需要 -webkit-,Firefox 6+ 需要 -moz-,IE 10+ 需要 -ms-,iOS 4.2+ 需要 -webkit-

Chrome < 55 和 Android 浏览器实际上支持 -webkit-hyphens: none(这是默认值),但不支持其他任何值。

在 Firefox 和 Internet Explorer 中,自动连字符仅适用于某些语言(使用 lang 属性定义)。有关支持语言的完整列表,请参阅 此注释

如果您正在编写确实需要连字符的基于 Web 的文档,则可以使用 Hyphenator.js,这是一个基于庞大字典的库,它会自动将软连字符和零宽度空格插入到您的内容中。

如果没有 JavaScript,您将不得不依赖 hyphensword-wrap

.hyphenate {
  word-wrap: break-word;
  overflow-wrap: break-word;

-webkit-hyphens: auto;
   -moz-hyphens: auto;
        hyphens: auto;
}

更多信息