ActiveX插件的Z-Index属性无效问题解决
来源:互联网 发布:网络监控摄像头 编辑:程序博客网 时间:2024/05/22 08:41
在Web开发中我们经常通过z-index设置多个元素之间的层叠关系,这种方式在多数情况下很有效,但是如果遇到有窗体元素时这种方式常常显得无能为力,今天我们就一块看一下如何有效的解决这个问题。
网页控件分为两大类:有窗体元素和无窗体元素。无窗体元素包括大多数html元素(例如div、table等)、无窗体的ActivX插件、iframe等;有窗体的元素包括<Object>元素、ActiveX插件、Plug-ins插件、Select元素等。所有的有窗体元素都会出现在无窗体元素之上,而有窗体元素和无窗体元素自身遵循z-index属性约束(注意使用z-index必须设置相应元素的position为absolute)。所有的无窗体元素都被浏览器渲染在同一个MSHTML平面,而有窗体元素被渲染在一个单独的MSHTML平面上。在同一个MSHTML平面当然可以通过设置z-index属性设置其层叠关系,但是对于不同平面上的元素,这个属性却无能为力。这里需要注意ActiveX插件,默认情况下VB和MFC控件是有窗体的,而ALT是无窗体的。
虽然上面说到ifame属于无窗体元素,但是在ie中它却横跨两边。无论是有窗体元素还是无窗体元素在显示时都会考虑iframe的顺序。因此如果要解决无窗体元素和有窗体元素之间的层叠关系时我们可以借助于iframe:通过把有窗体元素放到iframe中,然后设置iframe的z-index大于无窗体元素来解决二者层叠关系无法调整的问题;或者在无窗体元素内部放置一个iframe,设置其z-index小于无窗体元素并且其大小同无窗体元素相同;当然如果你觉得这两种方式都太麻烦的话可以使用jQuery的bgiframe插件,它的原理同第二种方式,不过使用起来就简单多了。
上面的方式或许可以解决大多数情况,但是实际应用中或多或少会给你造成一些额外的开发成本,如果你的项目中使用的Ext来进行前台开发,那么很幸运,Ext原生就对遮盖有窗体元素进行了支持。只需要在脚本开始处加上Ext.useShims=true;即可。
另外:多数情况下div被flash遮盖不用像上面这么麻烦,只需要设置wmode属性为transparent即可
详细出处参考:http://www.jb51.net/css/37779.html
- ActiveX插件的Z-Index属性无效问题解决
- ActiveX插件的Z-Index属性无效问题解决
- 解决ActiveX插件Z-Index属性无效问题
- z-index设置无效和元素重叠显示的问题解决
- html中设置z-index无效问题解决
- z-index的属性
- CSS 的 z-index 属性
- css的z-index属性
- z-index属性的总结
- 解决IE6 z-index 无效的问题
- IE Z-INDEX无效失效的解决
- z-index无效的几种情况
- div层调整z-index属性弹在IE中无效的解决方法
- z-index无效
- ie7 z-index 无效
- html + css 在设置了 z-index 属性后没效果的问题解决办法
- z-index 的属性的介绍
- 用css的z-index属性写一个js轮播图插件
- 日本富士通公司宣布支持Windows Azure的全新中间件产品全球可用
- 10706 - Number Sequence
- 关于Win7系统中软件安装目录下ini配置文件的读写问题
- C++的辅助工具介绍
- Java网络编程(13):使用Socket类接收和发送数据
- ActiveX插件的Z-Index属性无效问题解决
- Windows 7命令提示符小技巧
- ORA-01555错误
- 常用正则表达式
- IsPostBack深入探讨
- hibernate学习:Session中load和get
- 21个哲理故事
- VS 内存不能read—堆栈空间解决栈溢出问题
- 表结构修改