使用滤镜设置透明导致 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实现上传图片并预览的效果实现代码
Apr 11 Javascript
Jquery实现Div上下移动示例
Apr 23 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
May 05 Javascript
Yii2使用Bootbox插件实现自定义弹窗
Apr 02 Javascript
JavaScript检测鼠标移动方向的方法
May 22 Javascript
Ajax中解析Json的两种方法对比分析
Jun 25 Javascript
提高jQuery性能优化的技巧
Aug 03 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
May 03 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
Aug 03 Javascript
javascript比较语义化版本号的实现代码
Sep 09 Javascript
D3.js实现饼状图的方法详解
Sep 21 Javascript
微信小程序实战之上拉(分页加载)效果(2)
Apr 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数组的概述及分类与声明代码演示
2013/02/26 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
javascript函数定义的几种区别小结
2014/01/06 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
JavaScript跨域调用基于JSON的RESTful API
2016/07/09 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
jQuery 如何实现一个滑动按钮开关
2016/12/01 Javascript
Vue form 表单提交+ajax异步请求+分页效果
2017/04/22 Javascript
让你彻底掌握es6 Promise的八段代码
2017/07/26 Javascript
解析Json字符串的三种方法日常常用
2018/05/02 Javascript
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
Vue中添加滚动事件设置的方法详解
2020/09/14 Javascript
[54:10]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
python timestamp和datetime之间转换详解
2017/12/11 Python
Python 生成 -1~1 之间的随机数矩阵方法
2018/08/04 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
房地产管理毕业生自荐信
2013/11/04 职场文书
受欢迎的大学生自我评价
2013/12/05 职场文书
工程部文员岗位职责
2015/02/04 职场文书
公共场所卫生管理制度
2015/08/05 职场文书
小学班主任工作经验交流材料
2015/11/02 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python