CSS 是了不起的技术,我第一次用到的时候,觉得这是我做梦都想不到的东西,随着 CSS3 的引入,圆角,阴影,旋转等等技术更将 CSS 带到前所未有的高度。然而,关于 CSS,我们是不是已经走得太远,本文以一个 Web 设计师的角度对 CSS 的一些实验性应用做了另一种思考。
那些有关 CSS 的前卫实验
几个月前,作者在 Six Revisions 发表了一篇文章,介绍了 5 个有趣的 CSS 实验:
- CSS3 Transforms & @font-face Experiment
- CSS Posters
- Pure CSS Line Graph
- CSS3 Leopard-style Stacks
- Pure CSS Twitter Fail Whale
每个实验都是用了不同的方法,其中一些,如 CSS 线图,在现实中可以找到实际的应用,其它的,如 CSS 实现的 Twitter Fail Whale 图画,则纯属实验,这些实验的目的仅仅为了说明 CSS 能够实现的效果,并不意味着应当这样来做。
让我们实际一点
上图是用纯 CSS 实现的社会媒体网络标志,很神奇不是?
我最近读了 Faruk Ateş 的文章,Pure CSS Icons: Make The Madness Stop,文中对这一做法提出了质疑,作者表示,一些人开始尝试将 CSS 当作设计工具并迅速引发大量效仿,然而,这种做法有多少易用性可言?它并不容易集成到你的设计与开发当中,也不容易调整。
就像上面的完全基于 CSS 的社会网络标志,无非是一堆各式各样的线条的组合,固然令人印象深刻,也算有创意,但并不实用,因为创作这样一个标志可能需要几个小时的艰辛劳动,在 Photoshop 中画一个同样的图根本不费任何力气,而且效果更好(更细腻)。
Ateş 认为,这种方式生成的图标的可维护性也很成问题,调整一个图标原本只需要调整像素,现在却需要修改 CSS 定义,同时,上述 CSS 标志的设计者 Nicolas Gallagher 也表示,做这类事情,CSS 并非最适合。
降低 HTTP 请求?
上面这幅图中的图标全部用 CSS 生成,而且作者将它们拿出来卖,40个图标卖25美金。不得不承认,这些图标设计得非常漂亮,作者设计这些 CSS 的初衷是为那些使用的网站降低 HTTP 请求数,因为这些图标不需要额外的图片文件请求。然而,一个小小的图标文件带来的 HTTP 请求真的很值得一提吗,何况,使用 CSS Sprite 技术,这些图标完全可以放在同一个图片中,靠 CSS 定位显示,这样,只需要一个 HTTP 请求就够了。而且,我实在怀疑,这些 CSS 版的图标到底能减少多少带宽。
本着语义化的精神
必须承认,我有时候会为了实现某种视觉上的需要,而额外使用 DIV 或 SPAN 等标签,这很不语义。然而 CSS 绘图是更不语义的事,CSS 的真实使命是对网页中的内容进行修饰,而不是创建内容本身。网页中的图形本身属于内容的范畴,不应该由 CSS 创建。