现在大家做网页的对话框的时候,大多倾向于AJAX技术,就是对话框与网页在同一个页面,用AJAX技术控制对话框的内容和对话框的显示,隐藏,在用这种方式时虽然大家都能很容易的把"对话框"浮在最上层,也可以让他自由拖动.但是,却不能达到传统的模态对话框的效果,那就是界面上的其它按钮呀,链接呀什么的,只要是没有被挡住就还是可以点击."达不到看得见,点不着的效果".
一个可行的方法就是找一个遮罩层在对话框显示的时候盖在网页上,达到阻止点击的目的,常见的用于做遮罩的HTML元素有IMG,DIV等,用IMG加载一个透明的图片(一般来说是gif)或者作为DIV的背景图片,这样的确是实现了"看得见,点不着的效果",可是俗话说得好"林子大了,什么鸟都有",偏偏就有个叫IE6的,而且是占绝对数量用户群的一个浏览器,在里面下拉框(select)居然不受z-index控制,不管什么情况下始终"倔强"地出现在最顶层,挡也挡不住,被号称IE6最精典的BUG之一.曾经想尽一切办法想要解决这个问题,还是不能够搞定,咱没必要为了一个M$自己的BUG去浪费自己的时间和精力.我想很多程序员应该都有这种想法吧.
直接不行咱还可以曲线救国,你不是始终要在最顶层么,咱不能把你摁下去还不能把你变没了?

让你消失在视线中.呵呵,这下整个世界终于清静了.再也看不到烦人的下拉框了.这种方式着实流行了好一阵,特别是好几个用得比较多的日期选择控件就是这么做的,包括现在一直都有采用这种方式.
可是每次用的时候都得把网页上所有的下拉框都给隐藏了,对于一个完美主义的程序员来说,这点显然是不够的,这还不用说有些眼睛比较"毒"的用户,总是能看得到这些小的变化,还死死的抓着这个问题不放.
既然这两个元素都搞不定,那么能不能换一个别的呢?大家可能知道,html里面有个叫iframe的元素,这个元素比那个select更猛,能够把下拉框也给盖住,基本上满足了我们的要求,看来这个可行.我们知道透明遮罩其实就是遮罩层的alpha滤镜的值为0,在mozilla系都有一个opacity或者类似的属性可以设置所作用的元素的alpha滤镜的值,M$的IE系列貌似没有一个直接的属性可以使用,但是却提供了一个filter支持alpha滤镜.

试了一下,这样设置后基本上达到了想要的效果了,解决的方法也算是比较完美,各种浏览器都是可以支持的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述