技术频道


CSS 控制长文本自动折行

使用 <pre>


要包装长 URL、文本字符串和其他内容,只需将 CSS 代码块应用于任何块级元素(例如,非常适合 <pre> 标签):

pre {
    white-space: pre;           /* CSS 2.0 */
    white-space: pre-wrap;      /* CSS 2.1 */
    white-space: pre-line;      /* CSS 3.0 */
    white-space: -pre-wrap;     /* Opera 4-6 */
    white-space: -o-pre-wrap;   /* Opera 7 */
    white-space: -moz-pre-wrap; /* Mozilla */
    white-space: -hp-pre-wrap;  /* HP Printers */
    word-wrap: break-word;      /* IE 5+ */
}

为了强制长文本字符串,在 <pre> 里(或其他块级元素,例如 <div> 和 <p>)的宽度内换行,我们需要为 white-space 属性设置一个不同的值:

  • normal - white-space 属性的默认值。 空白序列被折叠成一个空白。 <pre> 内容将根据元素的宽度在空格处换行。
  • nowrap - 空格序列折叠为单个空格。 <pre> 内容将仅在显式 <br /> 元素处换行到下一行。
  • pre - 保留所有空格。 <pre> 内容将在隐式换行符处换行。 这是 <pre> 元素的默认行为。
  • pre-line - 空白序列被折叠成一个空白。 <pre> 内容将根据元素的宽度在空格和换行符处换行。
  • pre-wrap - 保留所有空格。 <pre> 内容将根据元素的宽度在空格和换行符处换行。
  • inherit - 从父元素继承的空白值。

不过,对目前而言,其实现代化的浏览器,大多数已经可以支持 word-break: break-all 足够好了,可以使用分词来让单词分多行。

CSS 控制长文本扩展阅读:




发表评论