美文网首页Web前端之路让前端飞程序员
word-wrap:break-word和word-break:

word-wrap:break-word和word-break:

作者: 心彻 | 来源:发表于2017-05-02 18:56 被阅读388次

    之前通过几何分形学学习了一下缓存机制,今天来学习一下“字词分割学”吧,哈哈,我自己瞎造的词,主要是为了学习一下CSS的两个属性:word-wrapword-break

    word-wrap

    设置或检索当内容超过指定容器的边界时是否断行。
    该属性的值有:

    • normal:允许内容顶开或溢出指定容器的边界。(即使内容超出边界也不断行。)
    • break-word:内容将在边界内换行。如果需要,单词内部允许断行。(当长单词所占据的宽度超过容器的宽度时,这个长单词会被换行显示。)

    <i>注:word-wrap属性最开始是IE的私有属性,后期被w3c采纳为标准属性,到CSS3时,该属性被更名为语义更准确的overflow-wrap。</i>

    word-break

    设置或检索对象内文本的字内换行行为。
    该属性的值有:

    • normal:亚洲语言允许字内换行,非亚洲语言不允许字内换行。
    • keep-all:亚洲语言和非亚洲语言<b>都不允许</b>字内换行。
    • break-all:亚洲语言和非亚洲语言<b>都允许</b>字内换行。
      <i>注:通常,为了防止无意义的长单词打破页面布局,我们会使用word-break:break-all;设置文本样式。</i>
      demo在这里

    扩展

    我们常常会收到这样的需求:比如,文章列表的标题,希望单行显示,固定宽度,超出部分要用省略号代替。
    这个需求要使用到CSS的另外一个属性叫white-space,这个属性的作用是<b>设置或检索对象内空格的处理方式</b>,该属性的属性值有:

    • normal:默认处理方式。
    • pre:用等宽字体显示预先格式化的文本,不合并文字间的空白距离,当文字超出边界时不换行。
    • nowrap:<b>强制在同一行内显示所有文本</b>,合并文本间的多余空白,直到文本结束或者遭遇br对象。
    • pre-wrap:用等宽字体显示预先格式化的文本,不合并文字间的空白距离,当文字碰到边界时发生换行。
    • pre-line:保持文本的换行,不保留文字间的空白距离,当文字碰到边界时发生换行。

    需求是,文章列表标题要单行显示,很明显,就需要设置white-space:nowrap;仅仅使用这一个属性只能满足标题单行显示,如果标题字数特别多,导致标题所占据的宽度超过容器的宽度时,就会发生文字溢出的现象,所以,我们还需要设置overflow:hidden;来隐藏超出容器部分的文字。需求里还有一点,就是超出部分要用省略号代替,这个也可以用CSS来实现,只需设置text-overflow:ellipsis;即可。所以,最终满足需求的所有代码如下:

        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    

    参考:
    CSS参考手册
    word-break:break-all和word-wrap:break-word的区别

    相关文章

      网友评论

        本文标题:word-wrap:break-word和word-break:

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