今天遇到一个Extjs窗口层次问题,找了半天找到一篇有用的
来源:互联网 发布:贵州中小企业数据统计 编辑:程序博客网 时间:2024/04/28 03: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插件,它的原理同第二种方式,不过使用起来就简单多了。
网页控件分为两大类:有窗体元素和无窗体元素。无窗体元素包括大多数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
- 今天遇到一个Extjs窗口层次问题,找了半天找到一篇有用的
- 找了半天才找到的代码
- 最近攒了一个多扑打smartphone,找了半天的evc4没找到呵呵
- 找了半天也没找到一个可以用的多用户BLOG
- 今天一个错误找了半天:脚本名和其中的方法名不能重名
- 今天弄了半天的问题终于解决了!
- 今天有时间戳转换的需求,网上找了半天才找到相关代码,经测试有效,特作此笔记和大家分享
- 那些苦苦搜索找了半天才能解决的“问题”
- 今天郁闷半天的问题
- 折腾半天的反射构造内部类找到一篇博客解决了
- 今天弄了半天页面编码问题
- 今天遇到了一个很有趣的问题
- 今天遇到了一个form表单的问题
- 今天用solrj遇到了一个问题,关于日期的
- tomcat 启动报内存溢出问题!今天遇到的找到答案了!和大家分享一下
- 今天又遇到了一个问题
- 今天遇到了一个奇怪问题
- 一个让我找了半天的低级错误,知道真相的我眼泪掉下来
- HDU 1106 排序
- Vim 配置详解
- shell批量添加删除100用户
- 自己实现用FFT加速多项式计算
- poj 1179 动态规划
- 今天遇到一个Extjs窗口层次问题,找了半天找到一篇有用的
- hdu4489 The King’s Ups and Downs
- 存储过程中执行动态Sql语句
- uploadfiy 3.0
- Android Query框架用法简单介绍
- C++宏定义详解
- 字符串处理小结
- 华为机试题——整数减法
- Tomcat 后台开机启动配置