使用滤镜设置透明导致 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 相关文章推荐
WEB页子窗口(showModalDialog和showModelessDialog)使用说明
Oct 25 Javascript
jQeury淡入淡出需要注意的问题
Sep 08 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
Jan 23 Javascript
jquery slibings选取同级其他元素的实现代码
Nov 15 Javascript
javascript中的throttle和debounce浅析
Jun 06 Javascript
JS上传组件FileUpload自定义模板的使用方法
May 10 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
Sep 06 Javascript
JavaScript表单验证开发
Nov 23 Javascript
JavaScript实现点击出现图片并统计点击次数功能示例
Jul 23 Javascript
Vue实现导航栏点击当前标签变色功能
Aug 19 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
Aug 05 Javascript
JS实现可以用键盘方向键控制的动画
Dec 11 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
Terran历史背景
2020/03/14 星际争霸
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
JS实现切换标签页效果实例代码
2013/11/01 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
jQuery垂直多级导航菜单代码分享
2015/08/18 Javascript
Angularjs全局变量被作用域监听的正确姿势
2016/02/06 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
关于在vue 中使用百度ueEditor编辑器的方法实例代码
2018/09/14 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
2018/09/16 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
Weex开发之地图篇的具体使用
2019/10/16 Javascript
vue实现评论列表功能
2019/10/25 Javascript
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
Python and、or以及and-or语法总结
2015/04/14 Python
简单了解Django模板的使用
2017/12/20 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
python 并发下载器实现方法示例
2019/11/22 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
一套SQL笔试题
2016/08/14 面试题
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
大学秋游活动方案
2014/02/11 职场文书
护士找工作求职信
2014/07/02 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL