使用滤镜设置透明导致 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 相关文章推荐
模仿JQuery.extend函数扩展自己对象的js代码
Dec 09 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
Oct 21 Javascript
js生成缩略图后上传并利用canvas重绘
May 15 Javascript
javascript if条件判断方法小结
May 17 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
May 20 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
May 06 Javascript
简介JavaScript中toTimeString()方法的使用
Jun 12 Javascript
JavaScript计算某一天是星期几的方法
Aug 05 Javascript
基于zepto的移动端轻量级日期插件--date_picker
Mar 04 Javascript
JS复杂判断的更优雅写法代码详解
Nov 07 Javascript
Nuxt.js 数据双向绑定的实现
Feb 17 Javascript
Openlayers绘制聚合标注
Sep 28 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
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
不同Jquery版本引发的问题解决
2013/10/14 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
jquery scroll()区分横向纵向滚动条的方法
2014/04/04 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
2016/10/10 Javascript
js格式化时间的简单实例
2016/11/27 Javascript
JS实现中国公民身份证号码有效性验证
2017/02/20 Javascript
如何使用three.js 制作一个三维的推箱子游戏
2020/07/29 Javascript
[42:04]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第一局
2016/03/03 DOTA
python数字图像处理之高级滤波代码详解
2017/11/23 Python
python 动态加载的实现方法
2017/12/22 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
python多任务及返回值的处理方法
2019/01/22 Python
Python实现Event回调机制的方法
2019/02/13 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
Django应用程序入口WSGIHandler源码解析
2019/08/05 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
Python partial函数原理及用法解析
2019/12/11 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
Html5 滚动穿透的方法
2019/05/13 HTML / CSS
JSF界面控制层技术
2013/06/17 面试题
商场客服专员岗位职责
2014/06/13 职场文书
庆祝教师节演讲稿
2014/09/03 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
李强为自己工作观后感
2015/06/11 职场文书
Python实现天气查询软件
2021/06/07 Python
python之django路由和视图案例教程
2021/07/26 Python
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python