旧的重叠菜单,如何对 activeX 进行 z-index
Posted
技术标签:
【中文标题】旧的重叠菜单,如何对 activeX 进行 z-index【英文标题】:The good old overlapping menu, how to z-index an activeX 【发布时间】:2011-10-17 07:43:40 【问题描述】:我的页面上有一个 ActiveX...我知道...ActiveX ... blarghhh!
出于某种逻辑业务原因,我们不得不使用 ActiveX,但问题是我不能让 ActiveX <object>
低于其他任何东西......
这太奇怪了!
Live plain example 和 Live example with
iframe
wrapper
您可以尝试该示例,但请记住 ActiveX 只能在 Internet Explorer 中运行,并且无论 ActiveX 是什么版本,它都会始终运行。
我面临的这个问题是重叠:
与position
和z-index
一起玩什么也没做,我也没有更多的想法:-(
【问题讨论】:
【参考方案1】:ActiveX 控件在 Internet Explorer 中呈现为 “windowed” 元素,而大多数其他元素(尤其是在较新版本的 IE 中)是 “windowless”。 Flash 有一个wmode
选项,用于绘制无窗口或有窗口,但根据我的经验,这很难实现,特别是如果对象是用 .NET 而不是 C++ 编写的。
所有有窗口的元素都将自己绘制在所有无窗口的顶部 元素,尽管容器的意愿。然而,开窗 元素之间确实遵循 z-index 属性, 就像无窗口元素遵循 z-index 属性一样 彼此。
所有无窗口元素都呈现在同一个 MShtml 平面上,并且 窗口元素绘制在单独的 MSHTML 平面上。您可以使用 z-index 在同一平面上操作元素但不混合和匹配 不同平面的元素。您可以重新排列 每个平面上的元素,但窗口平面始终绘制在顶部 无窗飞机。
> http://support.microsoft.com/kb/177378
我能想到两种可能的解决方案。你可以试试iframe "cutout" solution,它解释说你可以使用 iframe 来“剪掉”插件的一部分,以便下面的 HTML 显示出来。
第二种解决方案是在a popup object 中绘制弹出菜单。这些是在您的网页前面呈现的单独窗口,甚至可以超出文档的边界(有一些限制),主要缺点是它们没有阴影,因此这可能会使您的样式有点丑陋。
【讨论】:
因为它是一个 CRM 应用程序,所以我无法对下拉对象执行任何操作,但是,我可以对 ActiveX 主机页面执行任何操作,并且我确实使用<iframe>
进行了包装,但这并没有给出我有任何优势:( - 请查看iframe wrapper demo。以上是关于旧的重叠菜单,如何对 activeX 进行 z-index的主要内容,如果未能解决你的问题,请参考以下文章