RGBa
下面让我们讨论一下RGBa。RGBa是对原始的RGB的扩展,它加入了第四个参数:alpha通道。alpha通道参数采用0 到1之间的小数,就像opacity那样。使用RGBa而不是opacity的优势是,当使用RGBa的时候,透明不会被应用到子元素。这也就一位着,你可以在一个透明对象里面使用一个完全不透明的子对象,而当你使用opacity的时候,透明对象的子元素也是透明的。
使用RGBa不能再简单了:
div { background: rgb(255,0,0); /* The old one */ background: rgba(255,0,0,0.5); /* The new one */ }
正如你看到的那样,我们渐渐通过添加一个字母和另外一个参数就将一个实体的红色变为半透明的红色了。RGBa被Firefox 3+、Safari 3+、Chrome 1.0+以及Opera 10支持。但IE还是不支持。CSS-Tricks 提供了一个使用私有滤镜的方法来让它在IE下也可以工作:
<!--[if IE]> <style type="text/css"> .color-block { background:transparent; filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000050,endColorstr=#99000050); zoom: 1; } >/style> <![endif]-->
HSL
HSL是一个选择颜色的很直观的方法。如果你需要“再暗一点点儿” 或 “再亮一点点儿”,使用十六进制组合会颇麻烦吧。幸运的是,通过HSL,它就是仅仅一个简单的数字改变。

HSL代表Hue(色调、也称“色相”)、Saturation(饱和度)和Lightness(明度)。Hue就是一个色盘中的颜色(参考上图)。色彩选择通过度数来确定,0º 就是红色,120º 是绿色,而240º 就是蓝色。当然,你可以选择中间的不同的色彩组合,这样你就有这些:

Saturation(饱和度)是该色彩被使用了多少。0%表示灰度,也就是我们并没有使用这个颜色,而100%表示该颜色很饱满。通俗的讲,饱和度就是颜色的深浅程程度,鲜艳程度
Lightness(明度)也就是该色彩有多亮。较低设置意味着暗,较高设置意味着亮,0% 和100%意味着分别为黑和白。
所以,一个使用橙色的50%饱和度+50%名都的背景的对象看起来就像这样:
div {background: hsl(30, 50%, 80%);}
如果想让它更亮一些或者暗一些,只需要调整最后一个参数就可以了。
HSL被大部分浏览数支持,包括Safari 3.2+、Chrome、Firefox、Opera 9.6+,IE不支持。
HSLA
当然,HSLA 就是HSL 的扩展,就像RGBa一样,添加了第四个透明参数。使用HSLA就像RGBa一样简单,仅仅在那里贴上额外的参数就OK了:
div {background: hsla(30, 50%, 80%, 0.5);}
这个例子也是使用了橙色,但是添加了50%透明。
HSLA被大部分浏览器支持,包括Safari 3.2+、Chrome、Firefox,IE不支持,和HSL不同的是,Opera9.6并不支持HSLA,直到Opera 10才开始支持HSLA。
总结
显然,HSL 和HSLA 只被Firefox、Safari、Chrome和Opera等浏览器的较新的版本支持。而对已IE却没有想opacity和RGBa那样对应的私有属性支持它们两个。然而,这从来不会阻止你尝试或以它们做实验。
本文链接:http://www.blueidea.com/tech/web/2010/7330.asp
出处:前端观察
责任编辑:bluehearts
上一页 玩转CSS3色彩 [1] 下一页
◎进入论坛网页制作、WEB标准化版块参加讨论,我还想发表评论。
|