<pre> 元素可定義預格式化的文本。被包圍在 pre 元素中的文本通常會保留空格和換行符。而文本也會呈現為等寬字體。
<pre> 標簽的一個常見應用就是用來表示計算機的源代碼。
而我們經常碰到的一個問題是如果一個代碼上碰到有圖片或者網頁地址就會使代碼很長,結果會造成頁面撐開或者代碼超出邊界。非常難受,如果用overflow:hidden那么會將原來的代碼隱藏掉,用overflow:auto則會出現滾動條,代碼也不方便閱讀。
點擊查看:http://www.css88.com/demo/pre/index-1.html
今天折騰了一個晚上終於搞定<pre>的內容自動換行的問題:
1.先嘗試使用:word-wrap: break-word;將內容自動換行,IE,OP,Chrome,Safari都可以,FF就悲劇了。
點擊查看:http://www.css88.com/demo/pre/index-2.html
2.查看了pre的瀏覽器默認樣式:
xmp, pre, plaintext { display: block; font-family: -moz-fixed; white-space: pre; margin: 1em 0; }
都有這個white-space: pre,看看white-space的值:
值 | 描述 |
---|---|
normal | 默認。空白會被瀏覽器忽略。 |
pre | 空白會被瀏覽器保留。其行為方式類似 HTML 中的 <pre> 標簽。 |
nowrap | 文本不會換行,文本會在在同一行上繼續,直到遇到 <br> 標簽為止。 |
pre-wrap | 保留空白符序列,但是正常地進行換行。 |
pre-line | 合並空白符序列,但是保留換行符。 |
inherit | 規定應該從父元素繼承 white-space 屬性的值。 |
有個pre-wrap,保留空白符序列,但是正常地進行換行。
這樣就OK了搞定,我們只要加上樣式:
pre {
white-space: pre-wrap;
word-wrap: break-word;
}
就能使<pre>的內容自動換行了。