IE6,7下实现white-space:pre-wrap;

作者:birdstudio 来源:CSS魔法 时间:2009-12-31 18:30:00 

HTML 的空白符处理规则

HTML 中的“空白符”包括空格 (space)、制表符 (tab)、换行符 (CR/LF) 三种。

我们知道,在默认情况下,HTML 源码中的空白符均被显示为空格,并且连续的多个空白符会被视为一个,或者说,连续的多个空白符会被合并。

然而在有些时候,我们希望 HTML 源码中的多个连续空格在网页浏览器中可以真实地呈现,或者需要源码中的换行符能起到真正的换行作用。于是,我们发现了 <pre> 标签,它可以真实还原它内部文本的空白符的真实情况。

于是我们经常会把一段表示计算机代码的文本放进 <pre> 标签中,它们在浏览器中会表现出自身的空格缩进和换行效果,而不需要我们增加额外的样式和标签来控制它的缩进和换行。

随着对 CSS 的了解不断深入,我们发现,原来这一切都是 white-space 属性在安排。<pre> 元素之所以如此神奇,是因为它自身具有 {white-space: pre;} 这一默认样式。

white-space 属性

CSS 中的 white-space 属性用于设置文本空白符的处理规则,这其中包括:是否合并空白符、是否保留换行符、是否允许自动换行。各属性值的不同行为如下表所示:

white-space 属性值一览表 

属性值空白符换行符自动换行最早出现于
normal合并忽略允许CSS 1
nowrap合并忽略不允许CSS 1
pre保留保留不允许CSS 1
pre-wrap保留保留允许CSS 2.1
pre-line合并保留允许CSS 2.1

:在 CSS1/2 下,white-space 属性只可应用于块级元素;在 CSS 2.1 下,可应用于所有元素。)

如果我们需要某个容器元素具有类似 <pre> 元素的空白符处理行为,则为它设置 {white-space: pre;} 样式即可。

对 pre-wrap 的需求

我们先解释一下上述表格中的“自动换行”行为,它是指某元素内部的文本流按照文本方向排版,当文本流遇到限制其继续延伸的边界时,是否换行。“不允许自动换行”则意味着文本流会溢出该元素。

因此,{white-space: pre;} 样式有时候并不能满足我们的期望。比如,在某些不需要特别严谨的场合,或者排版某些对换行不敏感的代码片断(比如 HTML 或 CSS)的时候,我们不希望代码片段中的一行长代码令它的容器元素产生水平滚动条,因为那样不便阅读。我们希望在这种情况下,长代码自动换行就好。

这时,对照一下上表中各属性值的不同行为特征,我们会发现 pre-wrap 这个属性值脱颖而出——它正是我们所需要的。

标签:ie6,ie7,white-space:pre-wrap,css
0
投稿

猜你喜欢

  • document.all与WEB标准

    2008-03-16 14:28:00
  • 用 prototype 定义自己的方法

    2010-03-17 20:44:00
  • 禁用JavaScript脚本来复制网站内容

    2007-02-03 11:30:00
  • 网站的视觉路径和版式设计

    2008-04-15 14:35:00
  • sql server 锁表语句分享

    2012-02-12 15:49:20
  • MooTools的Cookie类太“自作聪明”了

    2008-11-13 12:59:00
  • [hta]一个定时重启或关闭计算机的小工具

    2007-10-17 12:02:00
  • Logo 设计准则[译]

    2009-07-22 21:05:00
  • asp制作验证码的方法

    2008-05-08 12:50:00
  • 解决MySQL 5数据库连接超时问题

    2009-03-25 15:24:00
  • 数据库技巧——MySQL十大优化技巧

    2011-01-31 16:44:00
  • MySQL转义字符的实际应用

    2010-08-31 14:55:00
  • 合理的网页设计具有哪些特征

    2007-10-09 13:24:00
  • 详解php如何合并身份证正反面图片为一张图片

    2023-05-22 10:44:46
  • IE6 升级要不要?

    2009-07-23 20:44:00
  • asp导出CSV格式数据

    2008-12-24 21:25:00
  • 如何获得ADO的连接信息?

    2009-11-23 20:33:00
  • css2.1实现多重背景和边框效果

    2010-06-23 19:02:00
  • PS笔刷,样式,形状、渐变、滤镜载入方式及使用

    2007-10-17 11:47:00
  • 解决 myJSFrame 框架中 Ajax 方法一处明显的内存泄露

    2008-03-09 19:14:00
  • asp之家 网络编程 m.aspxhome.com