在最近的调查层叠样式表(cascading
style sheets,CSS)是否最终到了大范围使用的时候。像ESPN和Wired已经跳上了CSS的花车,它们在各自的Web网站上完全集成CSS。但是,投票讨论这篇文章的Builder.com成员在CSS上似乎分成了两派。你可以在这里读到成员的帖子。
大多数的回应分成两类:
- 赞成实现CSS的——因为浏览器的支持向来都是不统一的,所以只管实现就好了。
- 反对实现CSS的——因为缺乏浏览器的统一支持是行不通的。
不是所有的浏览器都生来平等
CSS出了多个版本,而浏览器对其的支持很少能够统一。尽管Internet
Explorer 6提供了对
CSS第二版的丰富支持,但是它没能支持
CSS2标准的所有方面。即便如此,Builder.com的成员
kisom认为这将不成问题。“你见过什么时候所有的浏览器所生成的内容是完全一样的吗?如果你不停地等,你就只能够使用表格和图像分隔符。为什么?因为外面多的是符合
CSS标准的浏览器,所以除了偷懒和无知,没有什么理由不去使用
CSS。”
这个问题似曾相识。它让我想到了早期HTML的开发,那个时候Web开发人员还在热衷于闪烁标签,而且浏览器对HTML的支持也不明朗。网景开发了自己的HTML扩展集,微软也干了同样的事;结果是,很多开发人员花了数不清的时间才能让其解决方案同时工作在两个浏览器里。
不幸的是,解决这个问题的唯一方法是要知道浏览器支持的程度,并了解你的用户将使用什么浏览器。在企业内网(intranet)里应用程序所使用的浏览器是可以控制的,但是对于面向大众的Internet网站来说,它们是不能选择浏览器的。很多资源都能够帮助你确定某个浏览器支持什么版本的
CSS或者选项。下面是一个简要的列表:
上面的列表让我多少有点惊讶。Netscape 6似乎提供了对CSS最大范围的支持,而Internet Explorer 6落后也不多。
不值得争论?
由于浏览器的支持不统一,Builder.com的成员ps1对在实现一致的外观上所花费的时间感到灰心丧气。“我只赞成在网站的开发上大力推广CSS,正如Tony所指出的,在显示表列数据(tabular data)的时候,表格才是真正的保障。但是,浏览器的设计者仍然缺乏遵从CSS标准的考虑。让人愉快和令人满意的东西却让人灰心和发疯。概念就应该是概念,但是主要浏览器的处理方法却脱节了,仍然导致了令人头疼的问题,浪费了不必要的时间和精力来确保网页一致的外观。我发现我花费了太多时间来让其正确显示,因为Internet
Explorer 6以一种方式显示,而Netscape 6以另一种方式显示,但是Opera却显示了一个边框等等……只有等到浏览器设计者最终决定行动起来并给我们做件好事,我们才能够看到统一的<div
style=padding:rubber>room</div>。”
尽管有这些头疼的问题,但是作为开发人员的我们要等到浏览器统一才能够张开双臂拥抱CSS吗?
就是现在
Internet Explorer在浏览器市场处于主导地位,但是Netscape以及Mozilla和Opera,代表了一个强大的少数派,而且还有数不清的其他浏览器可以使用。点击这个
链接可以看到已知浏览器的简要列表。熟读这个列表就很清楚:要设计一个考虑到所有浏览器的网站是不可能的,这似乎加强了kisom希望Web开发人员行动起来的呼吁。
“如果有了
CSS你也没法做到,你就不应该去做它。表格对于数据来说非常好,它们作为设计机制很廉价也很容易实现。如果像ESPN和Wired这样的Web网站都迁移到
CSS上,那么这就说明了问题。
CSS的布局方法不仅能够给你更大的控制权,还能够加快网站的速度。而对于旧版本的浏览器而言,没有样式表的网站也可以。我的意思是,如果你正在使用Netscape 4,那么你要提供一个简版的样式表,先对付着用;不要就因为你不想学习正确的方法而拖累了95%以上的人。
这个帖子为使用
CSS提供了一个典型案例。多年以前,当我碰到浏览器对HTML的显示不一致的时候,我没有扔白毛巾认负而逃避它。相反,我解决了问题,并开发了能够吸引用户的解决方案。作为一项技术,
CSS演化到了第二版,第三版也正在制定中。它是一项被证明好处多多的技术。Web开发人员必须使用最好的技术来创建应用程序,而
CSS应该就在他们的工具箱里。
责任编辑:
李宁
欢迎评论或投稿