使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法

 更新时间:2011年04月07日 23:10:36   作者:  
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法,需要的朋友可以参考下。
如下
复制代码 代码如下:

<div style="width:100px;height:100px;background:gold"></div>

用IE开发者工具,或IE8自带的开发者工具。结构如 图1 :

红色所圈之处可以看到给div添加的内联样式width,height,background都依次排列。正常!

但给该div添加filter:alpha(opacity=20)后,

复制代码 代码如下:

<div style="filter:alpha(opacity=20);width:100px;height:100px;background:gold">
</div>

情况发生了变化,如 图2 :

红色所圈之处看到,width和filter挤在一行上了。正常的情况width应该另起一行。
有人也许会说这只是开发者工具没有正确显示,只要不影响页面元素正确渲染即可。
的确,在IE6/7/8/9 中该元素宽度、高度、背景色及透明度都能按设置所期望的渲染,显示。如图:

此外,将样式写在style标签内或css文件中也会出现以上现象。

再看下JS设置filter,情况稍有不同。代码如下:

复制代码 代码如下:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>IE 6/7/8/9 中JS设置filter</title>
</head>
<body>
<div id="d1" style="width:100px;height:100px;background:gold"></div>
<script type="text/javascript">
var d1 = document.getElementById('d1');
d1.style.filter = 'alpha(opacity=20)';
</script>
</body>
</html>

IE中查看结构,效果如 图2 ,即filter和width在一行。

注意以上html中的最后一句js代码
复制代码 代码如下:

d1.style.filter = 'alpha(opacity=20)';

右小括号后没有加分号。现在该句稍改下(的确是稍改,只加了个分号)
复制代码 代码如下:

d1.style.filter = 'alpha(opacity=20);';

即在由小括号后加了个 分号 ";" 。 这时查看IE开发者工具如 图3 :

红色所圈之处看到四个css属性background、filter、height和width单独在一行显示。而没有像 图2 中filter和width在一行显示。

PS:很多流行JS库设置透明的方法没有加 alpha(opacity=20)后的分号。

相关文章

  • 使用javascript控制cookie显示和隐藏背景图

    使用javascript控制cookie显示和隐藏背景图

    本文主要介绍了使用javascript来控制背景图片的显示和隐藏,当点击关闭按钮时,控制CSS使页面不加载背景图,同时记录COOKIE相关参数,并设置cookie的有效期
    2014-02-02
  • layui 表单标签的校验方法

    layui 表单标签的校验方法

    今天小编就为大家分享一篇layui 表单标签的校验方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • JavaScript 手动实现instanceof的方法

    JavaScript 手动实现instanceof的方法

    instanceof运算符用于检测构造函数的prototype属性是否出现在某个实例对象的原型链上,本文重点给大家介绍JavaScript手动实现instanceof的问题,感兴趣的朋友跟随小编一起看看吧
    2021-10-10
  • JavaScript中Infinity(无穷数)的使用和注意事项

    JavaScript中Infinity(无穷数)的使用和注意事项

    Infinity(无穷大)在 JS 中是一个特殊的数字,它的特性是它比任何有限的数字都大,如果不知道 Infinity,我们在一些运算操作遇到时,就会觉得很有意思,下面这篇文章主要给大家介绍了关于JavaScript中Infinity(无穷数)的使用和注意事项,需要的朋友可以参考下
    2022-04-04
  • 浅谈使用MVC模式进行JavaScript程序开发

    浅谈使用MVC模式进行JavaScript程序开发

    这篇文章主要介绍了浅谈使用MVC模式进行JavaScript程序开发,同时也介绍了一些JavaScript的MVC框架,需要的朋友可以参考下
    2015-11-11
  • 原生JS生成指定位数的验证码

    原生JS生成指定位数的验证码

    这篇文章主要为大家详细介绍了原生JS生成指定位数的验证码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • Mint-UI时间组件起始时间问题及时间插件使用

    Mint-UI时间组件起始时间问题及时间插件使用

    这篇文章主要介绍了Mint-UI时间组件起始时间问题的解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • URL中“#” “?” &“”号的作用浅析

    URL中“#” “?” &“”号的作用浅析

    这篇文章主要介绍了URL中“#” “?” &“”号的作用浅析,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-02-02
  • JS判断一个数是否是水仙花数

    JS判断一个数是否是水仙花数

    水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。下面通过本文给大家分享JS判断一个数是否是水仙花数,需要的朋友参考下吧
    2017-06-06
  • 微信小程序基于slider组件动态修改标签透明度的方法示例

    微信小程序基于slider组件动态修改标签透明度的方法示例

    这篇文章主要介绍了微信小程序基于slider组件动态修改标签透明度的方法,可通过slider组件拖动实现图片透明度的改变功能,涉及微信小程序事件绑定、base64格式图片载入及slider组件使用技巧,需要的朋友可以参考下
    2017-12-12

最新评论