IE滤镜及其使用技巧
Gradient Filter和AlphaImageLoader Filter
这两个属性是legend IE(IE6,7,8)中的渐变滤镜和透明滤镜,我们先详细介绍下这两个属性的用法,详情
可查看MSDN。
透明滤镜的使用方式很简单,只需在样式中定义
"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sProperties)"
即可。其中,关键部分就是sProperties。sProperties包括3部分,分别设置enabled使能,src图片url,sizingMethod
图片显示的大小。其中,sizingMethod设置为scale显示规定大小,设置为image则显示原大小。
设置滤镜的元素必须拥有布局,即该属性的hasLayout为true。拥有布局的方式很多,比如设置宽(高)度,设置
绝对定位,设置zoom:1等。
当然也可以针对一个元素设置多个滤镜。MSDN是这样描述多个滤镜如何作用的:
When multiple filters are applied to an object, each filter is processed in source order, with the
exception of procedural surfaces, which are computed first. To emphasize a filter's effect, place it last
in source order or on the object's parent. Always place transitions last in source order.
尽量把影响较为明显的滤镜放在最后一个。
渐变滤镜的使用方法和透明滤镜类似:
“filter:progid:DXImageTransform.Microsoft.Gradient(sProperties)”
sProperties包括了几个特别的属性,如enabled,EndColor(末尾颜色,不透明),EndColorStr(透明),StartColor,
StartColorStr(透明),GradientType(0为纵向渐变,1为横向渐变)。
其中,EndColorStr和StartColorStr的设置有一定的技巧,因为它代表有透明度的颜色,所以字符串的构成有两部分,
即: # + 透明度 + 颜色。颜色很好理解,6个16进制的数,透明度部分却需要计算:Math.floor(透明度 * 255).toString(16)。
比如RGBA(0,0,0,0.3)就需要设置为#4c000000。
设置滤镜属性
可以通过元素属性filters来获取设置的所有滤镜,针对每个滤镜,可以设置它的属性,比如Enabled,src,StartColorStr等等。
通过下面的例子可以很好的理解。
<!-- 透明滤镜的使用 -->
<DIV ID="oDiv" STYLE="position:relative; height:250px; width:250px;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(
src='http://pic31.nipic.com/20130727/12906030_080053134000_2.png', sizingMethod='scale');" >
</DIV>
<BR><BUTTON onclick="fnToggle(this);">Make Normal</BUTTON>
<!-- 渐变滤镜的使用 -->
<DIV ID="sDiv" STYLE="height:120px; color:green; filter:
progid:DXImageTransform.Microsoft.gradient(enabled='false',
startColorstr=#550000FF, endColorstr=#55FFFF00)" >
A simple gradient
</DIV>
<BUTTON onclick="fnToggle2(this)">Add Gradient</BUTTON><BR/>
var bToggle = 1
var oDiv = document.getElementById("oDiv"),
sDIv = document.getElementById("sDiv");
function fnToggle(oObj) {
if (bToggle) {
bToggle = 0;
oDiv.filters(0).sizingMethod="image";
oObj.innerText='Enlarge It';}
else {
bToggle = 1;
oDiv.filters(0).sizingMethod="scale";
oObj.innerText='Make Normal';}
} function fnToggle2(oObj) {
if (sDIv.filters(0).enabled){
sDIv.filters(0).enabled='false';
oObj.innerText='Add Gradient';}
else {
sDIv.filters(0).enabled='true';
oObj.innerText='Make Normal';}
}
IE下滤镜的使用
1, 元素透明
legend IE不支持RGBA,可以通过渐变滤镜进行替换。
.rgba{
background:rgba(0, 0, 0, 0.3);
filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr='#4c000000', EndColorStr='#4c000000');
}
这样,在现代浏览器采用RBGA透明,而在旧IE下使用渐进滤镜使其背景透明。
2, IE6下背景透明
都知道IE6不支持背景透明图片,但可以通过AlphaImageLoader进行替换。
.png_hack{
background-image: url(../img/the_image.png) !important;
background-image: none;
filter: none !important;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/the_image.png');
}
IE6下PNG8与PNG32透明的测试请看这篇文章。
IE滤镜及其使用技巧的更多相关文章
- iOS开发之滤镜的使用技巧(CoreImage)
一.滤镜的内容和效果是比较多并且复杂的 ,学习滤镜需要技巧 如下: 两个输出语句解决滤镜的属性选择问题: 1.查询效果分类中包含什么效果按住command 点击CIFilter 进入接口文件 找到第1 ...
- iOS开发 滤镜的使用
iOS开发之滤镜的使用技巧(CoreImage) 一.滤镜的内容和效果是比较多并且复杂的 ,学习滤镜需要技巧 如下: 两个输出语句解决滤镜的属性选择问题: 1.查询效果分类中包含什么效果按住com ...
- WPF开发中Designer和码农之间的合作
想要用WPF做出一流的软件界面, 必须要Designer和码农通力合作.理想的情况是平时并行开发,Designer用Expression套件(包括Design和Blend)来设计界面,码农开发Mode ...
- 你所不知道的 CSS 滤镜技巧与细节
承接上一篇你所不知道的 CSS 动画技巧与细节,本文主要介绍 CSS 滤镜的不常用用法,希望能给读者带来一些干货! OK,下面直接进入正文.本文所描述的滤镜,指的是 CSS3 出来后的滤镜,不是 IE ...
- CSS 滤镜技巧与细节
本文主要介绍 CSS 滤镜的不常用用法,希望能给读者带来一些干货! 注意:ie不兼容 本文所描述的滤镜,指的是 CSS3 出来后的滤镜,不是 IE 系列时代的滤镜,话不多说,直接开车,语法如下: { ...
- CSS技巧收集——巧用滤镜
最近暴雪一款叫<守望先锋>的游戏火到不行,身边很多人都深受其毒害,虽然博主自己没有买(穷),但是耳濡目染也了解了个大概. 由于之前大致学习了一下 css 滤镜的各种用法,所以心血来潮结合二 ...
- ps技巧
ADOBE PHOTOSHOP 同义词 PS(位图图像处理软件Photoshop)一般指ADOBE PHOTOSHOP 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . Adobe Pho ...
- 冷门JS技巧
前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前 ...
- 转载:冷门js技巧
前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前 ...
随机推荐
- bat获取所有的参数
bat默认只能获取到1-9个参数,分别用%1 %2 ... %9引用,如果传给bat的参数大于9个,就必须用shift. 工作需要,要写个bat脚本,获取所有的参数,再将所有的参数传给Java,代码如 ...
- Allegro之测量时显示两种单位(mil & mm)
首先确认你工程默认的单位是mil还是mm 例子为mils 在下面的选项中选择另外一项mm即可(如本身是mm,这里选择mils) 点击Apply,然后OK,操作测量功能,如下图所以效果:
- centos下python中添加easygui模块
前提:python中要集成Tkinter,Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同 ...
- SQL Server2008附加数据库之后显示为只读时解决方法
啰嗦的话就不多说了,直入主题吧! 方案一: 碰到这中情况一般是使用的sa账户登录的,只要改为Windows身份验证,再附加数据库即可搞定. 方案二: 使用sa登录SQL Server2008附加数据库 ...
- SqlServer存储过程模板
create procedure [spname]([spvariable])asbegin begin transaction begin try --具体sql过程 commit; end t ...
- Hbuilder开发HTML5 APP之向导页制作
研究了下,向导页的制作还是比较简单的,主要使用的是mui控件中的”图片轮播“组件,组件的标签写法手册中有,中间发现个有趣的东西,如果要作全屏,可以加个样式mui-fullscreen 滑动图片时会自动 ...
- HTML5- Canvas入门(六)
已经第六章了,也差不多接近尾声,如果你从第一章耐心follow到本章结束,那你便能掌握canvas的大部分知识点(当然如果要精通,还是得多靠练习,做一些小案例). 今天我们要学习的是canvas的变形 ...
- 【腾讯Bugly干货分享】美团大众点评 Hybrid 化建设
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/rNGD6SotKoO8frmxIU8-xw 本期 T ...
- Net作业调度(四)—quartz.net持久化和集群
介绍 在实际使用quartz.net中,持久化能保证实例重启后job不丢失. 集群能均衡服务器压力和解决单点问题. quartz.net在这两方面配置都比较简单. 持久化 quartz.net的持久化 ...
- iOS完整学习路线图