DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!
CSS 中的 word-break
属性可用于更改换行符的出现位置。通常,文本中的换行符只能出现在某些空格处,例如空格或连字符处。
在下面的示例中,我们可以将 word-break
设置在字母之间。
.element {
word-break: break-all;
}
如果我们将文本的宽度设置为一个 em
,则单词将按每个字母断行。
查看 CodePen 上 CSS-Tricks 的作品 使用 word-break 设置文本垂直对齐 (@css-tricks)。
此值通常用于用户生成内容的地方,以确保长字符串不会破坏布局。一个非常常见的例子是复制粘贴的长 URL。如果该 URL 没有连字符,它可能会超出父级框并看起来不好,或者更糟糕的是,导致布局问题。
查看 CodePen 上 CSS-Tricks 的作品 使用 word-break 修复链接 (@css-tricks)。
值
normal
:使用断词的默认规则。break-all
:任何单词/字母都可以换行。keep-all
:对于中文、日文和韩文文本,单词不会被拆分。否则,这与normal
相同。
此属性也经常与 连字符 属性一起使用,以便在换行时插入连字符,如同书籍中的标准做法。
完整的用法,带必要的供应商前缀,如下所示:
-ms-word-break: break-all;
word-break: break-all;
/* Non standard for WebKit */
word-break: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
如果您有一个包含大量用户生成内容的网站,则在通用选择器上使用这些属性可能很有用。但请注意,在标题和预格式化文本 () 上使用它们可能会显得奇怪。
).
相关
浏览器支持
此浏览器支持数据来自 Caniuse,其中包含更多详细信息。数字表示浏览器从该版本及更高版本开始支持该功能。
桌面
Chrome | Firefox | IE | Edge | Safari |
---|---|---|---|---|
23 | 49 | 11 | 18 | 6.1 |
移动/平板电脑
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
127 | 127 | 4.4 | 7.0-7.1 |
Safari 和 iOS 支持 break-all
值,但不支持 keep-all
。
似乎“webkit-hyphens: auto; -moz-hyphens: auto; hyphens: auto;”都没有效果。CSS 规范中是否有 hyphens 属性?
我也遇到同样的问题,沈家阳…
你没有输入
-webkit-hyphens: auto;
而是输入了
webkit-hyphens:auto;
这就是你的错误所在。如果在 CSS 中出错,则所有后续样式都会被忽略。
Chrome 不支持它。
https://caniuse.cn/css-hyphens
显然 IE10 支持带前缀的 hyphens 属性,所以更完整的写法应该是
IE8 引入了 -ms-word-break 作为 word-break 的同义词。不要使用 -ms- 前缀。
^ 来自:https://mdn.org.cn/en-US/docs/Web/CSS/word-break
显然 Firefox 的支持应该是否,而不是是。
OSX 10.11 El Capitan 上的 Firefoc 41.0.2 在你的示例中没有显示换行符。Safari 和 Chrome 则可以。
我也是,在 Mac 上的 Firefox 中不起作用!
在 Windows 上的 Firefox 中也不起作用。
闭嘴
不支持 hyphens ie10
上面关于连字符的示例是不正确的。
为了让 Firefox 支持自动连字符,必须将 word-break 行为设置为 normal。
word-break: normal
Chrome 不支持连字符。您可以使用 Chrome 特定的表示法
word-break: break-word
在 Chrome 中断单词,而不会中断 Firefox。在 Firefox 和 Chrome 中查看 此 CodePen
有没有办法只在单词超出行时才进行换行?而不是仅仅在每行末尾的单词换行,无论长度如何?
这段代码对我来说非常有效。
white-space: pre-wrap; /* css-3 /
white-space: -moz-pre-wrap; / Mozilla,自 1999 年起 /
white-space: -pre-wrap; / Opera 4-6 /
white-space: -o-pre-wrap; / Opera 7 /
word-wrap: break-word; / Internet Explorer 5.5+ */
在 Firefox 中,word-break 对内联元素不起作用。
CSS
.break {
word-break: break-all;
display:block;
}
“word-break : break-all” 参数也可用于书写卢恩文字,允许在单词中换行。
对句号不起作用 :(
谢谢!这解决了我的单词中间截断问题;)
我的一个旧的 Stack Overflow 答案 https://stackoverflow.com/questions/8186743/what-is-the-best-way-to-break-html-text-on-slashes/21780096#21780096 仍然有相当多的访问量,关于在斜杠处换行 URL 的问题…
… 2021 年有什么想法吗?
tl;dr 在 2014 年,我建议插入一个
<wbr>
或
零宽度空格(复制粘贴到浏览器时可能会断开)。我想对此做出回应
我们的网站包含这三种语言(以及英语和法语)。我们收到了来自日本和中国朋友关于使用
keep-all
的投诉。韩国用户反馈说使用keep-all
更好。因此,我的建议是仅对韩语使用它。我使用 :lang 伪类来实现它(它需要
html
标签的正确lang
属性)。