使用滤镜设置透明导致 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错误的解决方案
Aug 07 Javascript
javascript多种数据类型表格排序代码分析
Sep 11 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
Feb 12 Javascript
javascript与有限状态机详解
May 08 Javascript
javascript实现节点(div)名称编辑
Dec 17 Javascript
本人自用的global.js库源码分享
Feb 28 Javascript
jquery实现初次打开有动画效果的网页TAB切换代码
Sep 06 Javascript
layui导航栏实现代码
May 19 Javascript
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
使用vue-router完成简单导航功能【推荐】
Jun 28 Javascript
Vue表单及表单绑定方法
Sep 04 Javascript
OpenLayers3加载常用控件使用方法详解
Sep 25 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
PHP6 mysql连接方式说明
2009/02/09 PHP
比较简单实用的PHP无限分类源码分享(思路不错)
2011/10/13 PHP
利用php实现禁用IE和火狐的缓存问题
2012/12/03 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
JavaScript实现在页面间传值的方法
2015/04/07 Javascript
JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
2016/05/19 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
2016/08/25 Javascript
vuejs动态组件给子组件传递数据的方法详解
2016/09/09 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
Python中zip()函数用法实例教程
2014/07/31 Python
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
Python映射拆分操作符用法实例
2015/05/19 Python
python的keyword模块用法实例分析
2015/06/30 Python
python获取代码运行时间的实例代码
2018/06/11 Python
Python3.5面向对象与继承图文实例详解
2019/04/24 Python
详解python中自定义超时异常的几种方法
2019/07/29 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
python如何实现复制目录到指定目录
2020/02/13 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
基于Python测试程序是否有错误
2020/05/16 Python
Python正则表达式高级使用方法汇总
2020/06/18 Python
python interpolate插值实例
2020/07/06 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
amazeui页面校验功能的实现代码
2020/08/24 HTML / CSS
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
信息专业个人的自我评价
2013/12/27 职场文书
兼职业务员岗位职责
2014/01/01 职场文书
书法大赛策划方案
2014/06/04 职场文书
铁路安全反思材料
2014/12/24 职场文书