ado|滤镜
关于阴影效果,我可以本能反映的使用滤镜DropShadow,问题就是今天发生的问题,居然让我思考了15分钟,最初始我的样式写法:
filter : progid:DXImageTransform.Microsoft.DropShadow(color=#666,offX=5,offY=5,positives=true);
也搞不清楚是那里复制来的,反正我肯定背不下来,从来都是一句搞定,今天这个客户突然提个要求说:阴影小一点。我想,那简单啊修改参数offX和offY,于是
filter : progid:DXImageTransform.Microsoft.DropShadow(color=#666,offX=3offY=3,positives=true);
没反映,ft,怎么搞的,然后就陷入了深入的排查样式冲突啊,重复定义啊,加单位啊什么的。无结果,无奈拿出宝书,小雨的样式表手册,直接运行示例,开始看到一个颜色数值:#00404040,自做聪明认为小雨的低级错误,选了下边的#003399,一切顺利,又很白痴的对照了5分钟
filter : progid:DXImageTransform.Microsoft.DropShadow(color=#003399,offX=3,offY=3,positives=true);
这时突然醒悟过来,颜色不能缩写!也就是说我以前的#666必须写成#666666,赶紧看color说明:可选项。字符串(String)。设置或检索此滤镜作用的颜色值。其格式为 #AARRGGBB 。AA 、RR 、GG 、BB 为十六进制正整数。取值范围为 00 - FF 。 RR 指定红色值, GG 指定绿色值, BB 指定蓝色值,参阅 #RRGGBB 颜色单位。 AA 指定透明度。 00 是完全透明。 FF 是完全不透明。
默认值为 #FF404040 。
原来如此!道理很简单,为什么一直疏忽并没有发现,最后总结原因如下:
1,颜色值必须全写,和我以前理解样式定义安全色可简写理论相悖;
2,当颜色指派不成功时,如#666,不报错,自动以默认方式执行,也就是默认黑色,各偏移5,恰好是我的常用样式,故一直未被发现有问题;
3,color=#FF404040用法有概念混淆误导,真是孤陋寡闻第一次看到,以前从未注意。