使用滤镜设置透明导致 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的eval JSON object问题
Nov 15 Javascript
js 复制或插入Html的实现方法小结
May 19 Javascript
jquery点击页面任何区域实现鼠标焦点十字效果
Jun 21 Javascript
js实现文本框选中的方法
May 26 Javascript
javascript创建函数的20种方式汇总
Jun 23 Javascript
将页面table内容与样式另存成excel文件的方法
Aug 05 Javascript
如何获取元素的最终background-color
Feb 06 Javascript
Bootstrap列表组学习使用
Feb 09 Javascript
Angular 输入框实现自定义验证功能
Feb 19 Javascript
微信小程序多张图片上传功能
Jun 07 Javascript
javaScript封装的各种写法
Aug 14 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
Oct 30 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+APACHE实现用户论证的方法
2006/10/09 PHP
PHP Mysql编程之高级技巧
2008/08/27 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
10条php编程小技巧
2015/07/07 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
PHP实现八皇后算法
2019/05/06 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
2020/01/23 PHP
js改变文章字体大小的实例代码
2013/11/27 Javascript
Javascript前端UI框架Kit使用指南之kitjs的对话框组件
2014/11/28 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
浅谈javascript的Touch事件
2015/09/27 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
基于node.js实现爬虫的讲解
2019/02/18 Javascript
VUE实现图片验证码功能
2020/11/18 Javascript
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
Python 如何访问外围作用域中的变量
2016/09/11 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
Canvas中设置width与height的问题浅析
2018/11/01 HTML / CSS
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
德国在线购买葡萄酒网站:Geile Weine
2019/09/24 全球购物
Linux操作面试题
2012/05/16 面试题
如何进行有效的自我评价
2013/09/27 职场文书
销售简历自我评价
2014/01/24 职场文书
学生会离职感言
2014/02/11 职场文书
党员干部一句话承诺
2014/05/30 职场文书
最新离婚协议书范本
2014/08/19 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android