玩转CSS3色彩[译](2)

作者:vocal 来源:前端观察 时间:2010-01-13 13:02:00 

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&ordm; 就是红色,120&ordm; 是绿色,而240&ordm; 就是蓝色。当然,你可以选择中间的不同的色彩组合,这样你就有这些:

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那样对应的私有属性支持它们两个。然而,这从来不会阻止你尝试或以它们做实验。

译自:Playing Around with CSS3 Colors
中文:玩转CSS3色彩

标签:css3,色彩,hsla,RGBa
0
投稿

猜你喜欢

  • xWin的HTC分享

    2009-09-13 18:50:00
  • ASP正则获取图片地址

    2009-09-03 13:18:00
  • 简述Asp与XML之间的关系

    2008-04-17 10:46:00
  • javascript 版 Bad Apple 字符动画

    2010-01-28 12:19:00
  • css设计小巧三条

    2008-01-21 13:04:00
  • MySQL的root密码丢失解决方法

    2011-05-05 15:56:00
  • 用户体验量化方法研究(二)

    2010-02-08 12:46:00
  • 做网站要习惯化与去习惯化

    2008-06-18 13:36:00
  • 如何防范利用刷新来“作弊”的计数器?

    2009-11-22 17:18:00
  • XPath 1.0 学习笔记

    2009-02-25 12:19:00
  • asp sql去左右空格函数

    2008-03-04 17:29:00
  • 详解MySQL数据库之更新语句

    2010-08-08 09:15:00
  • sqlserver自动增长列引起的问题解决方法

    2011-10-24 19:37:28
  • 一些sql语句

    2009-04-10 18:36:00
  • SQL Server 数据库备份和还原认识和总结 (一)

    2012-10-07 10:52:54
  • 也谈 CSS Sprites

    2009-10-06 15:14:00
  • 14个出色的jQuery导航菜单实例教程

    2009-12-31 17:23:00
  • MySQL 函数过程递归

    2008-07-25 19:32:00
  • 如何在一个广告旗帜里轮番显示时间长度不一的不同广告?

    2010-06-26 12:35:00
  • 求英文字母或数字或下划线或汉字的js正则表达式

    2009-08-04 17:59:00
  • asp之家 网络编程 m.aspxhome.com