总结CSS3新特性(颜色篇)
颜色:
CSS3新增加了hsl(), hsla(), rgb(),rgba()四个函数来创建color值;
hsl():
hsl函数:h(色调),s(饱和度),l(亮度);
色调:为0-360之间的数值[经实验,可以为小数];
饱和度与亮度:均为百分比;
下图截自http://www.w3.org/wiki/CSS/Properties/color/HSL
当亮度为100%时为白色,当亮度为0%为黑色;
饱和度100%以及亮度50%时生成的颜色均为web安全色
rgb():
rgb函数:r(red),g(green),b(blue)[计算机三原色];
值可以为0-255任意整数或百分比;
如超出范围,取最近的有效值:
em { color: rgb(300,0,0) } /* clipped to rgb(255,0,0) */ em { color: rgb(255,-10,0) } /* clipped to rgb(255,0,0) */ em { color: rgb(110%, 0%, 0%) } /* clipped to rgb(100%,0%,0%) */
下图截自http://www.w3.org/wiki/CSS/Properties/color/RGB
有一点需要注意,百分比与数值不能同时出现在一个rgb函数中;
rgba()与hsla():
这两位与上边两位的区别在于后边的a(alpha)透明度;
透明度为0-1之间的数值,0为全透明,1为全不透明,利用透明度可以做出很多好看的效果
一个简单的例子(当然了- -这个例子不算好看)
上例中用到了一个类似于变量的单词(currentColor[大小写不区分])
currentColor可用于所有设置颜色属性的地方.
取值为当前元素的color属性值,如果没有,寻找父级,一直到根元素,如果都没有设置的话,不要担心,还有浏览器代理的默认颜色.
w3官方有一个简短的解释,如果元素color属性值为currentColor的话,则视为 'color:inherit';
比较实用的一个地方就是,设置元素边框颜色,颜色(color),等等属性时,只需设置颜色(color);后续更改时也只需修改一处,子元素也可直接继承使用currentColor,但需要确保子元素没有显示声明color属性值;
还有用到了两个长度单位(vw,vh)取值范围[0-100]
100vw为屏幕宽度;
100vh为屏幕高度;
还存在两个值,vmax与xmin,分别是取出宽高最大或最小值;
vw与vh可参与calc()的计算;
顺便介绍下 opacity:
opacity用来设置元素的透明度:(取值为0-1)
IE8可用替代的
filter:Alpha(opacity=50) /*0-100*/
来实现透明度;
颜色基本上就这些了,如有错误或补充还请指出(无视transparent...)