解決 標籤裏的文本換行(兼容IE, FF和Opera等)

 

咱們都知道<pre> 標籤可定義預格式化的文本,一個常見應用就是用來表示計算機的源代碼。被包圍在 pre 元素中的文本一般會保留空格和換行符,但不幸的是,當你在<pre>標籤裏面寫代碼的時候,若是你沒有手動換行,它也會給你保留,而不會動換行。css

這時候,你能夠使用overflow:auto; (當代碼超出容器邊界的時候,顯示滾動框), 但這個方法也並不適用於全部主流瀏覽器,一些瀏覽器會直接截斷超出的內容 。html

pre-wrap

因爲本站中使用源碼的地方也不是不少,以前也不是很在乎這個問題,前不久有位熱心的網友在QQ上反饋這個問題,因而在趁此次更換主題時,尋找了一下解決方案,分享之。css3

pre {
 white-space: pre-wrap;       /* css-3 */
 white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
 white-space: -pre-wrap;      /* Opera 4-6 */
 white-space: -o-pre-wrap;    /* Opera 7 */
 word-wrap: break-word;       /* Internet Explorer 5.5+ */
}

出自: Making preformated text wrap in CSS3, Mozilla, Opera and IE瀏覽器

該CSS方案可以讓pre標籤內的文本自動換行,我在我有的瀏覽器上都測試了一下,所有支持,IE6,IE7, IE8, Firefox, Opera, Safari和Chrome。測試

僅當你把窗口縮小到小於20個字符的寬度的時候,纔會超出邊界 :)spa

相關文章
相關標籤/搜索