解决ActiveX插件Z-Index属性无效问题

简介:

摘要:

Web开发中我们经常通过z-index设置多个元素之间的层叠关系,这种方式在多数情况下很有效,但是如果遇到有窗体元素时这种方式常常显得无能为力,今天我们就一块看一下如何有效的解决这个问题。

内容:

网页控件分为两大类:有窗体元素和无窗体元素。无窗体元素包括大多数html元素(例如divtable等)、无窗体的ActivX插件、iframe等;有窗体的元素包括<Object>元素、ActiveX插件、Plug-ins插件、Select元素等。所有的有窗体元素都会出现在无窗体元素之上,而有窗体元素和无窗体元素自身遵循z-index属性约束(注意使用z-index必须设置相应元素的positionabsolute)。所有的无窗体元素都被浏览器渲染在同一个MSHTML平面,而有窗体元素被渲染在一个单独的MSHTML平面上。在同一个MSHTML平面当然可以通过设置z-index属性设置其层叠关系,但是对于不同平面上的元素,这个属性却无能为力。这里需要注意ActiveX插件,默认情况下VBMFC控件是有窗体的,而ALT是无窗体的。

虽然上面说到ifame属于无窗体元素,但是在ie中它却横跨两边。无论是有窗体元素还是无窗体元素在显示时都会考虑iframe的顺序。因此如果要解决无窗体元素和有窗体元素之间的层叠关系时我们可以借助于iframe:通过把有窗体元素放到iframe中,然后设置iframez-index大于无窗体元素来解决二者层叠关系无法调整的问题;或者在无窗体元素内部放置一个iframe,设置其z-index小于无窗体元素并且其大小同无窗体元素相同;当然如果你觉得这两种方式都太麻烦的话可以使用jQuerybgiframe插件,它的原理同第二种方式,不过使用起来就简单多了。

上面的方式或许可以解决大多数情况,但是实际应用中或多或少会给你造成一些额外的开发成本,如果你的项目中使用的Ext来进行前台开发,那么很幸运,Ext原生就对遮盖有窗体元素进行了支持。只需要在脚本开始处加上Ext.useShims=true;即可。

另外:多数情况下divflash遮盖不用像上面这么麻烦,只需要设置wmode属性为transparent即可。

目录
相关文章
|
6月前
|
前端开发
Antd中Table列表行默认包含修改及删除功能的封装
Antd中Table列表行默认包含修改及删除功能的封装
155 0
|
2月前
|
JavaScript
element-ui table表格多选后再打开默认选中
element-ui table表格多选后再打开默认选中
|
JavaScript
js根据内容让select默认选中
js根据内容让select默认选中
【Element-ui】每个类只有一个默认设置选项
【Element-ui】每个类只有一个默认设置选项
【Element-ui】每个类只有一个默认设置选项
WPF项目中不支持 ResizingPanel,未在类型“ResizingPanel”中找到可附加的属性“ResizeWidth”
WPF项目中不支持 ResizingPanel,未在类型“ResizingPanel”中找到可附加的属性“ResizeWidth”
|
JavaScript 开发工具 git
Element-ui中 表格(Table)组件中 toggleRowSelection 方法设置默认多选项 无法选中解决思路
Element-ui中 表格(Table)组件中 toggleRowSelection 方法设置默认多选项 无法选中解决思路
1276 0
Element-ui中 表格(Table)组件中 toggleRowSelection 方法设置默认多选项 无法选中解决思路
|
JavaScript 前端开发
JavaScript通过改变location对象的hash属性实现相同页面显示不同详情内容的效果
JavaScript通过改变location对象的hash属性的应用 前面我们学到了BOM的Location对象,现在来讲一下实际的应用。通过改变hash属性获取不同的数据。 1.列表页面代码: &lt;a href=&quot;10模拟详情页面.html#0&quot; target=&quot;_blank&quot;&gt;张三&lt;/a&gt; &lt;a href=&quot;10模拟详情页面.html#1&quot; target=&quot;_blank&quot;&gt;李四&lt;/a&gt; &lt;a href=&quot;10模拟详情页面.html#2&quot; target=&quot;_blank&quot;&gt;王五&lt;/a&gt; &lt;a href=&quot;10模拟详情页面.html#3&quot; target=&quot;_b
|
JavaScript 前端开发 开发者
BOM(一)概述、history对象、location对象、navigator对象、事件
BOM(一)概述、history对象、location对象、navigator对象、事件
223 0
BOM(一)概述、history对象、location对象、navigator对象、事件
|
Web App开发 编解码 iOS开发
浏览器环境 - window 对象 - 属性介绍
本文介绍 window 对象为数不多的几个属性值:origin、name、status 设备高宽像素比等。着重介绍 name 属性的由来、用处,尤其是其在跨域当中的作用。
1582 0