CSS 还有可移植性?

转载

看到 [url=http://jjgod.3322.org/2005/09/01/css-ssc/]Web4C[/url] 说到“破坏 CSS 的可移植性”,我不知道对于一个 CSS 文件超过 50K 的网站还有什么可移植性可谈,我认为 CSS 最大缺陷也正如此——如果能定义一些常量,情况也能好的多。

有两种最常见的情况。

1.相同的值要重复写很多遍

比方说定义一个看起来很简洁的页面,使用简单的几种颜色,其中一些线条和文字的颜色是相同,但他们不是相同的[b]属性[/b],因此只能这么写

[quote]
p.texta {
color: #ABC;
}

textarea.textb {
border-color: #ABC;
}

img.icona {
background-color: #ABC;
}
[/quote]

同时由于这种相同色系的关联错综复杂,不可能挨着写。

2.相对路径问题

比方说背景图片,类似“background-image: url("img/background.png")”,这里的路径怎么写都是错的,如果使用了相对路径,你会发现下一层的网页没有背景图片,因为这里的相对位置是针对网页而不是 CSS 文件的,如果写成绝对路径“/img/”的话,很可能又会在整个网站的位置有迁移的时候出现所有页面统统无法找到图片的错误。

[hr]

如果 CSS 文件大了,考虑用程序替换一些特定标识后再生成最终的 CSS 页面就很必要了。实事上所有成熟的系统都在几年前就这么干了,如 [url=http://sourceforge.net/projects/phpmyadmin]phpMyAdmin[/url],如 [url=http://www.invisionboard.com/]IPB[/url]。但这些额外的、相互独立的机制本是可以避免的。

不知道 CSS 3 有没有引入常量的概念,如果没有,我只能惊讶,一群不是美工、不是 UI 设计师、也不是程序员的莫名其妙的人们花了数年的时候还对这点基本弊病没有概念,然后随便编了点莫名其妙的文本就当成标准来全球推广,实在是荒唐。