使用滤镜设置透明导致 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 贪吃蛇实现代码
Nov 22 Javascript
jquery实现table鼠标经过变色代码
Sep 25 Javascript
js与运算符和或运算符的妙用
Feb 14 Javascript
jquery图片倾斜层叠切换特效代码分享
Aug 27 Javascript
JavaScript中两个字符串的匹配
Jun 08 Javascript
jQuery简易时光轴实现方法示例
Mar 13 Javascript
Bootstrap免费字体和图标网站(值得收藏)
Mar 16 Javascript
利用nginx + node在阿里云部署https的步骤详解
Dec 19 Javascript
js实现点击按钮复制文本功能
Jul 20 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
Sep 24 Javascript
js实现ajax的用户简单登入功能
Jun 18 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
Jul 17 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
php 定界符格式引起的错误
2011/05/24 PHP
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
MySQL的FIND_IN_SET函数使用方法分享
2012/03/27 PHP
浅析php中抽象类和接口的概念以及区别
2013/06/27 PHP
php遍历目录方法小结
2015/03/10 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
2016/03/17 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
thinkphp5 migrate数据库迁移工具
2018/02/20 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
vue表单绑定实现多选框和下拉列表的实例
2017/08/12 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
2017/09/22 jQuery
详解如何使用webpack打包JS
2018/06/21 Javascript
axios异步提交表单数据的几种方法
2019/08/11 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
Vue.js中使用Vuex实现组件数据共享案例
2020/07/31 Javascript
解决elementui表格操作列自适应列宽
2020/12/28 Javascript
从Python的源码来解析Python下的freeblock
2015/05/11 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
Python读取txt某几列绘图的方法
2018/10/14 Python
实例介绍Python中整型
2019/02/11 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
数控专业毕业生求职信范文
2013/09/21 职场文书
毕业生的自我鉴定该怎么写
2013/12/02 职场文书
司机辞职报告范文
2014/01/20 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
党员证明模板
2015/06/19 职场文书
MySQL一些常用高级SQL语句
2021/07/03 MySQL