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


Posted in Javascript onApril 07, 2011

如下

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

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

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

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

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

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

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

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

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

使用滤镜设置透明导致 IE 6/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 :

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

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

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

Javascript 相关文章推荐
javascript通过navigator.userAgent识别各种浏览器
Oct 25 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
Nov 26 Javascript
BOOTSTRAP时间控件显示在模态框下面的bug修复
Feb 05 Javascript
jQuery表单验证功能实例
Aug 28 Javascript
基于JavaScript实现移动端TAB触屏切换效果
Oct 20 Javascript
BootStrap中的table实现数据填充与分页应用小结
May 26 Javascript
JavaScript实现form表单的多文件上传
Mar 27 Javascript
老生常谈js中的MVC
Jul 25 Javascript
VUE前端cookie简单操作
Oct 17 Javascript
Vue infinite update loop的问题解决
Apr 23 Javascript
在layui中select更改后生效的方法
Sep 05 Javascript
layui点击弹框页面 表单请求的方法
Sep 21 Javascript
javascript各浏览器中option元素的表现差异
Apr 07 #Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
Apr 07 #Javascript
我的javascript 函数链之演变
Apr 07 #Javascript
JavaScript中链式调用之研习
Apr 07 #Javascript
js中各浏览器中鼠标按键值的差异
Apr 07 #Javascript
javascript 单例/单体模式(Singleton)
Apr 07 #Javascript
Safari5中alert的无限循环BUG
Apr 07 #Javascript
You might like
ThinkPHP利用PHPMailer实现邮件发送实现代码
2013/09/26 PHP
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
表单JS弹出填写提示效果代码
2011/04/16 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
jQuery的Scrollify插件实现滑动到页面下一节点
2015/07/05 Javascript
js时间比较 js计算时间差的简单实现方法
2016/08/26 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
JavaScript中十种一步拷贝数组的方法实例详解
2019/04/22 Javascript
回顾Javascript React基础
2019/06/15 Javascript
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
python实现的登录和操作开心网脚本分享
2014/07/09 Python
python根据路径导入模块的方法
2014/09/30 Python
Python 多线程实例详解
2017/03/25 Python
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
Python爬虫实现“盗取”微信好友信息的方法分析
2019/09/16 Python
python提取xml里面的链接源码详解
2019/10/15 Python
python实现字典嵌套列表取值
2019/12/16 Python
python numpy库np.percentile用法说明
2020/06/08 Python
python如何设置静态变量
2020/09/07 Python
python上下文管理的使用场景实例讲解
2021/03/03 Python
电气自动化自荐信
2013/10/10 职场文书
理工大学毕业生自荐信
2013/11/01 职场文书
学院书画协会部门职责
2013/11/28 职场文书
给海归自荐信的建议
2013/12/13 职场文书
城市轨道交通工程职业规划书范文
2014/01/18 职场文书
英语教师岗位职责
2014/03/16 职场文书
消防工作实施方案
2014/06/09 职场文书
医院搬迁方案
2014/06/14 职场文书
2014年副班长工作总结
2014/12/10 职场文书