美文网首页
CSS中word-wrap、word-break的区别

CSS中word-wrap、word-break的区别

作者: 一个疯子的喃喃自语 | 来源:发表于2018-05-21 19:52 被阅读18次

    相信大家写CSS的时候也会经常遇到这几个属性,而且它们看起来还蛮像的,但是每次需要加换行的时候,都得查一下,总是记不住。

    word-wrap:属性规定自动换行的处理方法。

    /* 关键字值 */
    word-wrap: normal;
    word-wrap: break-word;
    
    /* 全局值 */
    word-wrap: inherit;
    word-wrap: initial;
    word-wrap: unset;
    
    normal:表示在正常的单词结束处换行。
    break-word:表示如果行内没有多余的地方容纳该单词到结尾,则那些正常的不能被被分割的单词会被强制分割换行。
    

    不过很有意思的是MDN上竟然对这个属性名改成了overflow-wrap(我也是刚刚才知道。。。),它原来是微软的一个私有属性,现在word-wrap被当作overflow-wrap的备选写法,只不过并不是所有浏览器都兼容,还是乖乖使用word-wrap吧。

    word-break:指定了怎样在单词内断行。

    /* 关键字值 */
    word-break: normal; 
    word-break: break-all; 
    word-break: keep-all;
    
    /* 全局值 */
    word-break: inherit;
    word-break: initial;
    word-break: unset;
    
    normal:使用默认的断行规则。
    break-all:对于non-CJK (CJK 指中文/日文/韩文) 文本,可在任意字符间断行。
    keep-all:CJK 文本不断行。 Non-CJK 文本表现同 normal。
    

    OK,介绍了一下这两个属性,下面来具体看一下它们的区别

    word-wrap:

    normal: 单词太长时会换行,若超出一行会溢出。
    break-word: 如果这一行有可以换行的点,如空格或CJK之类的,就让这些换行,否则会让英文单词或字符换行,这样很可能会出现不对齐的现象。

    word-break:

    normal:使用默认的断行规则。
    break-all: 会对所有内容都换行,非常霸道。
    keep-all: 放不下了,就另起一行展示,再放不下,也不折行。

    Can I use 上对这个属性有这样一句提示:

    Chrome, Safari and other WebKit/Blink browsers also support the unofficial break-word value which is treated like word-wrap: break-word.

    翻译成中文意思是:

    Chrome, Safari以及其他WebKit/Blink浏览器还支持费非官方标准的break-word值,其表现就和word-wrap: break-word一样。

    怪不得见过word-break:break-word这个样式,但MDN上没有,原来是非官方的,而且它等同于word-wrap: break-word

    相关文章

      网友评论

          本文标题:CSS中word-wrap、word-break的区别

          本文链接:https://www.haomeiwen.com/subject/hlaxjftx.html