全局使用CSS word-wrap有哪些缺点?

12

在以下方式中使用word-wrap:break-word是否有任何缺点?

body
{
    word-wrap: break-word;
}
此属性的值描述如下:
  • normal: 仅在允许断点处断行
  • break-word: 允许非断点词汇被分开换行
现在,这只对无法分割的单词(即连续字符串比其容器更长)的断行有所影响。否则,在任何文本中它都不会有99%的区别。
因此,使用全局属性是否有任何缺点?它肯定可以解决很多布局问题,并且(至少就我所知)没有任何不良影响。使用一次似乎比必须到可能具有溢出文本而混乱您的布局的所有位置应用该属性要好。

有趣的是,YouTube 的最新版本在 body 上设置了 word-wrap: break-word; ... - Jake Petroules
3个回答

2

我想不到任何缺点,因为如果你想在其他地方使用其他类型的换行,你总是可以覆盖这个全局样式。

话虽如此,如果你能够尽可能地缩小需要使用该样式的情况范围,使用一个广泛的类会更好。无法预测全局 break-word 样式将引起什么罕见但非常令人沮丧的错误(以及在哪些浏览器中出现)。


2
这是一个非常老的问题,但对于任何访问者来说... 是的,在国际化文本方面确实存在全局问题。在某些语言中,比如CJK(中文、日文、韩文),你有很多上下文(汉字等),其中破坏内容本质上会损害理解能力。 - Pythonista

0

如果页面不是测试页面,我看不出将其设为全局的任何优点。

对我来说,我不希望不可分割的单词被打断。当它们没有被打断时,阅读起来更容易。但是,如果您想使文本适应一个 div 而不使用 text-align:justify; 并且在字母或单词之间留下空隙,这可能很好。

我之所以说除了测试页面之外的其他页面,是因为有时,当我想要使用占位符文本而不是“lorum ipsum”时,我会输入乱码,但 div 总是会拉伸。但由于我不会在实际网站上使用该文本,因此我可能不会使用它。


事实上,只有比其容器更长的单词才会被word-wrap: break-word;打断。因此,它实际上不会影响任何其他内容。如果您的div距离末尾只有几个像素,并且您有一个很长的单词,它不会分裂,而是会移到下一行。只有当单词比其容器更长时,才会进行拆分。 - Jake Petroules
哦,我明白了。那么我只会在胡言乱语时使用它。但既然我不再这样做了,我必须说没有真正的理由使用它。不过,如果你正在构建一种代码编辑器,并且希望像BBEdit一样对文本进行软换行,那么你可以将所有内容都适配到div中。 - Charlie

0

我认为唯一需要考虑的是在IE8中的支持。

根据thisword-wrap: break-word;并不适用于所有情况。

此属性适用于具有布局的元素。当元素绝对定位、是块级元素或具有指定高度或宽度的内联元素时,元素就具有布局。

当然,这似乎很容易纠正,但如果您需要支持IE8并且您打算将其应用于没有“布局”的项目时,则应该知道这一点。

新的CSS3属性很有趣:

http://www.w3.org/TR/css3-text/#word-break

http://www.w3.org/TR/css3-text/#word-wrap


1
@Jake Petroules:然而,将所有东西都布局好并不是一个好主意。或者至少,这让我感到不舒服。 - BoltClock
当然,@Jake,假设你知道要定位哪些元素! - Jason Gennaro
哦,我的意思不是给所有的东西都加上 zoom:1,只是那些需要它的东西。 - Jake Petroules

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接