近来看了Dean的“Convert any colour value to hex in MSIE”,终于解决了根据关键字获取颜色rgb值的问题。
顺便把程序也重新整理一番,并使用了最近整理的工具库。
效果预览到这里
下载完整实例
程序说明
【ColorGrads颜色梯度】
程序ColorGrads的作用是根据颜色集合和渐变级数生成颜色梯度集合。
渐变级数的意思是分多少步完成渐变。
网页设计中的颜色是用RGB色彩模式呈现的。
在这个模式中每种颜色可以用三个代表红(r)、绿(g)、蓝(b)的颜色值(0到255)来表示。
从w3c的Colors部分看到标准中颜色的表示形式包括:
关键字形式:
em { color: red }
RGB形式:
em { color: #f00 }
em { color: #ff0000 }
em { color: rgb(255, 0, 0) }
em { color: rgb(100%, 0%, 0%) }
以上都是表示同一种颜色(红色)。
关键字形式就是用关键字代表颜色值。
而RGB形式,前两种用的比较多,都是一个"#"后面带16进制表示的颜色值,第三种是用十进制的颜色值,第四种是实际值跟255的百分比形式。
各个浏览器对各种颜色表示形式的获取并不相同:
"color: red"形式:
ie
opera
ff
chrome/safari
style
red
red
#ff0000
red
currentStyle
red
"red"
getComputedStyle
#ff0000
rgb(255, 0, 0)
rgb(255, 0, 0)
"color: #ff0000"/"color: #f00"形式:
ie
opera
ff
chrome/safari
style
#ff0000/#f00
#ff0000
rgb(255, 0, 0)
rgb(255, 0, 0)
currentStyle
#ff0000/#f00
#ff0000
getComputedStyle
#ff0000
rgb(255, 0, 0)
rgb(255, 0, 0)
"color: rgb(255, 0, 0)"/"color: rgb(100%, 0%, 0%)"形式:
ie
opera
ff
chrome/safari
style
rgb(255,0,0)
#ff0000
rgb(255, 0, 0)
rgb(255, 0, 0)
currentStyle
rgb(255,0,0)
#ff0000
getComputedStyle
#ff0000
rgb(255, 0, 0)
rgb(255, 0, 0)
基本上得到的值还是按标准的形式显示的,只是有些会自动转换形式。
不过ie的rgb形式跟ff/chrome/safari的不同,数值之间并没有空格。
要特别注意的是opera用currentStyle获取关键字形式得到的颜色值是带双引号的,十分奇怪,要尽量避免使用。
要获取两种颜色的渐变梯度,先要把颜色转化成能用来计算的数值。
GetColor和GetData程序就是用来把符合w3c标准表示的颜色值转化成组合该颜色的红(r)、绿
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>javas
cript 操作日期 测试</title>
<meta http-equiv= ......