zoukankan      html  css  js  c++  java
  • word-break、word-wrap、white-space区别

    <div id="box">
      Hi&nbsp;&nbsp;,
      This   is a incomprehensibilities long word.
      </br>
      你好&nbsp;&nbsp;,
      这   是一个不可思议的长单词
    </div>

    现在只给了它一个宽度和边框,没有其它任何样式,下面是它目前的展现情况:

    可以看到,nbsp;</br>可以正常发挥作用,而连续的空格会被缩减成一个(比如This和is之间的三个空格变成了一个),换行符也全都无效。句子超过一行后会自动换行,而长度超过一行的单个单词会超出边界。
    接下来我们看下, 给它上面三个css属性赋值后会出现什么变化。

    white-space

    正如它的名字,这个属性是用来控制空白字符的显示的,同时还能控制是否自动换行。它有五个值:normal | nowrap | pre | pre-wrap | pre-line。因为默认是normal,所以我们主要研究下其它四种值时的展现情况。

    white-space:normal 初始默认样式


    先看下white-space:nowrap时的情况:

    不仅空格被合并,换行符无效,连原本的自动换行都没了!只有</br>才能导致换行!所以这个值的表现还是挺简单的,我们可以理解为永不换行

     white-space:pre

    空格和换行符全都被保留了下来!不过自动换行还是没了。保留,所以pre其实是preserve的缩写,这样就好记了。

     white-space:pre-wrap 显然pre-wrap就是preserve+wrap,保留空格和换行符,且可以自动换行。

    white-space:pre-line 空格被合并了,但是换行符可以发挥作用,line应该是new line的意思,自动换行还在,所以pre-line其实是preservenew line+wrap

    word-break

    从这个名字可以知道,这个属性是控制单词如何被拆分换行的。它有三个值:normal | break-all | keep-all

    word-break:keep-all

    所有“单词”一律不拆分换行,注意,我这里的“单词”包括连续的中文字符(还有日文、韩文等),或者可以理解为只有空格可以触发自动换行

    这样的效果好像并不太好呀,能不能就把incomprehensibilities拆一下,其它的单词不拆呢?那就需要下面这个属性了:

    word-wrap(overflow-wrap)

    word-wrap又叫做overflow-wrap

    word-wrap 属性原本属于微软的一个私有属性,在 CSS3 现在的文本规范草案中已经被重名为 overflow-wrap 。 word-wrap 现在被当作 overflow-wrap 的 “别名”。 稳定的谷歌 Chrome 和 Opera 浏览器版本支持这种新语法。

    这个属性也是控制单词如何被拆分换行的,实际上是作为word-break的互补,它只有两个值:normal | break-word,那我们看下break-word


    终于达到了上文我们希望的效果,只有当一个单词一整行都显示不下时,才会拆分换行该单词
    所以我觉得overflow-wrap更好理解好记一些,overflow,只有长到溢出的单词才会被强制拆分换行!

    (其实前面的word-break属性除了列出的那三个值外,也有个break-word值,效果跟这里的word-wrap:break-word一样,然而只有Chrome、Safari等部分浏览器支持)





  • 相关阅读:
    翻译MDN里js的一些方法属性
    ajax相关
    我的面试错题
    写代码通用思路
    工厂模式
    cookie & session
    X-UA-Compatible设置IE浏览器兼容模式
    [转]IE6/IE7/IE8/IE9中tbody的innerHTML不能赋值的完美解决方案
    EasyUseCase 一款脑图转化 Excel 测试用例工具 (1.2 版本升级)
    XMind2TestCase:一个高效测试用例设计的解决方案!
  • 原文地址:https://www.cnblogs.com/Xuman0927/p/12063549.html
Copyright © 2011-2022 走看看