有兩個CSS屬性我一直在混淆着其意義,今天一併整理掉。html
white-space和word-wrap一般用來解決以下問題:segmentfault
white-space能夠取以下的值:瀏覽器
normal | nowrap | pre | pre-wrap | pre-line
關於解釋,看圖比較直接。spa
如下截圖均由以下代碼模板獲得:code
<body> <div style="white-space: {{value}};">hello world my name is ssnau, i am living in the beauuuuuutiful hangzhou city </div> </body>
注:segmentfault會在正文壓縮圖片,點擊圖片可看原圖)orm
word-wrap能取以下值:htm
normal | break-word
如下兩個示例抄自MDN(https://developer.mozilla.org/en-US/docs/Web/CSS/word-wrap)圖片
normal
: 單詞超長也不可折行,產生溢出:ci
p { width: 13em; background: gold; }
效果:
字符串
break-word
: 單詞超長會折行:
p { width: 13em; background: gold; word-wrap: break-word; }
效果:
white-space
是做用於空格和回車上的,用於控制:
而word-wrap
是做用在單詞上,用於控制超長單詞是否折行。
注意white-space
有一堆pre
開頭的值,pre
究竟是什麼意思呢?
一般嘛pre
是prefix
的縮寫,不過這可解釋不通啊。在html裏也有一個<pre>
的標籤,它們之間有什麼聯繫呢?
其實它們都是preserve
(保留)的縮寫啦。因而咱們能夠這麼理解:
pre
: 保留(preserve)全部的空格和回車,且不容許折行。(把折行也當作是一種非preserve)pre-wrap
: 保留(preserve)全部的空格和回車,可是容許折行(wrap)。pre-line
: 僅僅保留(preserve)回車(line),會合並空格,且容許折行而<pre>
正是默認有以下CSS的元素:
pre { display: block; white-space: pre; }
篇首的幾個問題,就當是習題好了。