但要知道五年后才有 CSS,十年后 CSS 才获得全面的实现.因此这是一个群雄逐鹿的时代,很多多热心的工作和变革,产生了多个互相竞争的样式方案,看上去很有可能成为标准.
尽管这些语言在今天并没有用起来,但是我发现思考彼时的未来会变成什么样子真的很有奇妙.更让人惊讶的是,碰巧这些可能成为 CSS 的语言包含的一些特性正是如今开发者希望出现在 CSS 中的.
第一个提案
1993年年初,Mosaic 还没有发布 1.0,当时其他已有的浏览器还在搞怎么处理 HTML.并没有什么方法可以来给 HTML 添加样式.总之就是,<h1>的样式完全取决于浏览器.
在这年的6月,Robert Raisch 在www-talk的邮件列表中给出了一个提案,创建了“一个解析容易与 Web 文档一起发布的样式信息的格式”,赐名 RRP.
@BODY fo(fa=he,si=18)
看不懂这段代码也很正常.在没有 gzip,网络传输速度只有 14.4k 的时代,尽力压缩新格式的大小是非常合理的.这段规则的实际上是设置字体(font family ->fa)为helvetica(he),字号(font size -> si)为 18 像素.
这个提案缺少一个有意思的东西就是单位,所有数字对应的单位决定于他们使用的上下文(例如字体的大小都是以像素为单位的).这可以说明 RRP 设计的目的是作为“一系列指导渲染的指示或者建议的集合”,而不是作为标准.这是值得考虑的,因为同一份样式表必须在命令行浏览器和图形界面浏览器(例如 [Lynx](https://en.wikipedia.org/wiki/Lynx_(web_browser))都能正常工作,后一种浏览器变得越来越流行.
有趣的是,RRP 包含设置列布局的方式,这个特性直到2011年才引入到 CSS 中.例如,3列每列80单位就是下面这样子:
@P co(nu=3,wi=80)
这解析起来有点困难,但应该没有white-space: nowrap难.
值得一提的是,RRP 并不支持如今所用的“层叠”样式表.一个文档同一时刻只能激活一个样式表,这从逻辑上来说是合理的,但是今天看来就有点奇怪了.
马克·安德森(一个曾经最流行的浏览器 Mosaic 的创造者)知道 RRP 提案,但是并没有在 Mosaic 中实现它.Mosaic 很快(同时也是遗憾地)就采用了通过 HTML 来定义样式的方案,引入像<FONT>和<CENTER>这样的标签.
Viola 以及原始浏览器之战
现在台面上已经有多个样式表的提案,为什么你不选其中一个实现之?只要正确地实现了问题就将得到解决.
因此,我必须告诉大家,“好了,你需要学习这种语言来撰写你的文档,然后学习另外种语言来来把你的文档定义成你想要的样子.”噢,他们会喜欢这样的. —— 马克·安德森 1994
反直觉的是,Mosaic 并不是第一个图形化的浏览器.ViolaWWW 要比它还早,Pei-Yuan Wei 起初花了四天时间写出的图形化的浏览器.
Pei-Yuan Wei 创建了一个样式表语言,支持某种嵌套式的结构,这已经被我们用在了今天的 CSS 之中:
(BODY fontSize=normal
BGColor=white
FGColor=black
(H1 fontSize=largest
BGColor=red
FGColor=white)
)
在上例中,为 body 设置颜色,并给出现在 body 中的 h1 设置样式.PWP 并没有采用重复的选择器来表示层级,而是使用圆括号系统.这让我联想到了想 Stylus 和 SASS 使用的缩进系统,如今这在某些 CSS 开发者中很流行.从这方面来讲,PWP 的语法比 CSS 更好,不过后者已经成为了 Web 的通用语言.
值得一提的是 PWP 还是引用外部样式表方法的提出者,到今天也一直在用:
<LINK REL="STYLE" HREF="URL_to_a_stylesheet">
遗憾的是,ViolaWWW 只能在 X Window System 下工作,后者只在 Unix 系统上受欢迎.当 Mosaic 移植到到 Windows 后,Viola 就消失不见了.
如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h63643.shtml