ActiveX软件的Z

2021-01-20 13:33 jianzhan
在Web开发设计中大家常常根据z-index设定好几个元素之间的堆叠关联,这类方法在大部分状况下很合理,可是假如遇到有窗体元素时这类方法经常显得束手无策,今日大家就1块看1下怎样合理的处理这个难题。

网页页面控制分成两大类:有窗体元素和无窗体元素。无窗体元素包含大多数数html元素(比如div、table等)、无窗体的ActivX软件、iframe等;有窗体的元素包含<Object>元素、ActiveX软件、Plug-ins软件、Select元素等。全部的有窗体元素都会出現在无窗体元素之上,而有窗体元素和无窗体元素本身遵照z-index特性管束(留意应用z-index务必设定相应元素的position为absolute)。全部的无窗体元素都被访问器3D渲染在同1个MSHTML平面,而有窗体元素被3D渲染在1个独立的MSHTML平面上。在同1个MSHTML平面自然能够根据设定z-index特性设定其堆叠关联,可是针对不一样平面上的元素,这个特性却束手无策。这里必须留意ActiveX软件,默认设置状况下VB和MFC控制是有窗体的,而ALT是无窗体的。

尽管上面说到ifame属于无窗体元素,可是在ie中它却横跨两侧。不管是有窗体元素還是无窗体元素在显示信息时都会考虑到iframe的次序。因而假如要处理无窗体元素和有窗体元素之间的堆叠关联时大家能够依靠于iframe:根据把有窗体元素放到iframe中,随后设定iframe的z-index超过无窗体元向来处理2者堆叠关联没法调剂的难题;或在无窗体元素內部置放1个iframe,设定其z-index小于无窗体元素而且其尺寸同无窗体元素同样;自然假如你感觉这两种方法都太不便的话可使用jQuery的bgiframe软件,它的基本原理同第2种方法,但是应用起来就简易多了。

上面的方法也许能够处理大多数数状况,可是具体运用中或多或少会给你导致1些附加的开发设计成本费,假如你的新项目中应用的Ext来开展前台接待开发设计,那末很好运,Ext原生态就对遮住有窗体元素开展了适用。只必须在脚本制作刚开始处再加Ext.useShims=true;便可。

此外:大部分状况下div被flash遮住无需像上面这么不便,只必须设定wmode特性为transparent便可。