咱们都知道<pre> 标签可定义预格式化的文本,一个常见应用就是用来表示计算机的源代码。被包围在 pre 元素中的文本一般会保留空格和换行符,但不幸的是,当你在<pre>标签里面写代码的时候,若是你没有手动换行,它也会给你保留,而不会动换行。css
这时候,你能够使用overflow:auto; (当代码超出容器边界的时候,显示滚动框), 但这个方法也并不适用于全部主流浏览器,一些浏览器会直接截断超出的内容 。html
因为本站中使用源码的地方也不是不少,以前也不是很在乎这个问题,前不久有位热心的网友在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