解决控件遮挡问题:关于有窗口元素和无窗口元素

不知道朋友们有没有碰到过控件的遮挡问题,最典型的就是DropdownList和ActiveX的遮挡,HTML的z-index就是用于处理这个问题,但是直接设置这个属性还不行,因为这中间还牵扯到有窗口元素和无窗口元素的问题。

有窗口元素大概有以下几种: 
<object> 、ActiveX控件 、Plug-ins、DHTML Scriptlets、SELECT elements(即DropdownList的HTML表现)、IE5.01以前的IFRAMEs

无窗口元素包括: 
无窗口的ActiveX控件、IE5.5以后的IFRAMEs、大部分的DHTML元素

其中很值得一提的就是ActiveX控件,默认情况下,VB和MFC的控件是有窗口的,ATL控件是无窗口的,但是ActiveX控件是作为无窗口来进行实现而且实际上被归类到无窗口元素中。

不管容器怎么设定,所有的有窗口元素都会出现在无窗口的元素之上,有窗口元素和无窗口元素内部自身互相会遵循z-index属性,它们会被绘制在不同的平面上进行显示,设置z-index只能对它们所在的平面起作用,而且有窗口元素的平面始终处于无窗口元素平面之上。

那么解决遮挡问题的思路就很简单了,把我们的元素封装进一个DIV中,代码示例如下:

<DIV id="PAL2" style="DISPLAY: inline; Z-INDEX: 8; LEFT: 80px; WIDTH: 360px; POSITION: absolute; TOP: 80px; HEIGHT: 168px"> 
<OBJECT id="dhtmltest" style="Z-INDEX: 8; WIDTH: 352px; HEIGHT: 168px" type="text/x-scriptlet" data="TestDivDropdownList.htm" VIEWASTEXT> 
</OBJECT></DIV>

DIV的z-index为8,然后将SELECT的z-index调为7即可(只需要比DIV的z-index小)。

(0)

相关推荐

  • 解决控件遮挡问题:关于有窗口元素和无窗口元素

    不知道朋友们有没有碰到过控件的遮挡问题,最典型的就是DropdownList和ActiveX的遮挡,HTML的z-index就是用于处理这个问题,但是直接设置这个属性还不行,因为这中间还牵扯到有窗口元素和无窗口元素的问题. 有窗口元素大概有以下几种:  <object> .ActiveX控件 .Plug-ins.DHTML Scriptlets.SELECT elements(即DropdownList的HTML表现).IE5.01以前的IFRAMEs 无窗口元素包括:  无窗口的Active

  • 对PyQt5基本窗口控件 QMainWindow的使用详解

    QMainWindow基本介绍 QMainWindow主窗口为用户提供了一个应用程序框架,它有自己的布局,可以在布局中添加控件. 窗口类型介绍 PyQt5中,主要使用以下三个类来创建窗口,可以直接使用,也可以继承后再使用 QMainWindow QWidget QDialog QMainWindow QMainWindow可以包含菜单栏,工具栏,状态栏,标题栏等,是GUI程序的主窗口. 如果我们需要创建主窗口程序,就使用该类. QDialog QDialog是对话框窗口的基类,对话框一般用来执行

  • python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法

    PyQt5窗口布局控件QStackedWidget介绍 QTackedWidget是一个堆栈窗口控件,可以填充一些小控件,但是同一时间只有一个小控件可以显示,QStackedWidget使用QStackedLayout布局.QSTackedWidget控件与QTabWidget类似,可以有效的显示窗口的控件 QStackedWidget的使用实例 import sys from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.

  • JS控件autocomplete 0.11演示及下载 1月5日已更新

    1月5日已更新 修复自动完成文本框焦点移失,自动完成容器不能消失的bug 增加expandAllItem方法,双击时可出现全部的item,详情请看示例 增加customStyle示例,该示例演示了如何对autocomplete控件进行css美化,见autocomplete_custom的css文件 演示及下载: http://www.never-online.net/code/neverModules/autocomplete/ 功能较上一版本的改进和功能: 1.匹配速度的提高. 2.加入ign

  • Python中PyQt5/PySide2的按钮控件使用实例

    在之前的文章中,我们介绍了PyQt5和PySide2中主窗口控件MainWindow的使用.窗口控件的4中基础布局管理.从本篇开始,我们来了解一下PyQt5和PySide2中基础控件的使用,其中包括: 按钮控件: 文本输入控件: 单选控件: 文本标签控件: 多选控件: 列表控件: 等图形界面开发中常用的控件,今天我们来介绍按钮控件. 文章目录 直接实例化一个带文本的按钮控件 不带参数创建的按钮控件 三.获取按钮控件的点击事件 一.创建一个按钮控件 在PyQt5/PySide2中,按钮控件名为QP

  • Qt实现自定义验证码输入框控件的方法

    前言 本文实现了自定义的验证码输入框控件.控件包括图标.输入框.获取验证码按钮.验证码获取倒计时标签.支持鼠标点击获取验证码按钮后开始显示倒计时功能,倒计时为0时,才可以在此点击获取验证码按钮.效果如图: 主要的编程思想还是实现自定义控件的封装性和共用性. UI布局: 控件1:QWidget,实现整个控件的封装,这个控件使用水平布局,实现控件的水平摆放,同时,当其中一个控件隐藏时,位置会重新更新,实现在控件的后面只显示获取验证码和倒计时两个控件中的一个. 控件2:QLabel,实现展示盾牌图标.

  • Android实现登陆页logo随键盘收放动态伸缩(完美解决键盘弹出遮挡控件的问题)

    在最近的两个项目中,项目需求要求我们实现 /*登陆页面的内容能够随着键盘的弹出而被顶上去,避免键盘遮挡住登陆按钮*/ 这样的效果,宝宝心里苦呀,本来半天搞定的事还非得折腾一下,好吧我妥协,毕竟我还是一只非常注重用户体验的猿. 那就做吧,初步定下的方案是输入框和登陆按钮大小不变,在键盘弹出的时候让logo的大小和位置进行改变,从而给键盘腾出位置,当然在键盘收起的时候还要给它还原一下,就像什么都没发生一样,嗯对,就是这样,说了这么多,放张图先感受一下效果吧: 接下来上正餐,布局上比较简单,注意给图片

  • C#控件闪烁的解决方法

    本文实例讲述了C#控件闪烁的解决方法.分享给大家供大家参考.具体分析如下: 如果你在Form中绘图的话,不论是不是采用的双缓存,都会看到图片在更新的时候都会不断地闪烁,解决方法就是在这个窗体的构造函数中增加以下三行代码: 请在构造函数里面底下加上如下几行: 复制代码 代码如下: SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景. SetSty

  • bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法

    筒子们在使用bootstrap的日期控件(datepicker , 现在官网提供的名称叫 datetimepicker)时可能会遇到如上图的问题这是啥原因造成的呢? 答案很简单时输出的优先级造成的(z-index) z-index 的值越大优先级越高 就会越显示靠前上图的情况就是dialog的 x-index的值大于datepicker的值 上图找到了对应控件的css样式后修改x-index的值直到datepicker 的控件显示在dialog之前: 记住这个x-index的值(假设1100)后

  • 解决Android Studio Design界面不显示layout控件的问题

    Android Studio更新到3.1.3后,发现拖到Design中的控件在预览界面中不显示: 解决办法: 在Styles.xml中的parent="..."中的Theme前添加Base <resources> <!-- Base application theme. --> <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar&quo

随机推荐