IE7中的文本区域在鼠标悬停时消失

时间:2020-03-06 14:54:17  来源:igfitidea点击:

我有这种大数据输入的页面,一种使用div的表格布局。每行都有可以切换为打开/关闭的子行。切换是使用CSS可见性设置触发的。表格的每个"单元格"的角落都有一个小图像,我们单击该图像,然后会打开一个弹出窗口,允许我们在条目上添加注释。

该弹出窗口具有一个文本区域和一组复选框,以及一个按钮(我认为输入类型为提交)。弹出窗口是嵌套在隐藏div中的iframe。

在IE7中,一旦弹出该笔记iframe,然后向下滚动页面,将鼠标悬停在弹出窗口的文本区域上,使其消失并在其下方显示页面内容。当我们将鼠标悬停在上方时,这些复选框也会显示以下页面。

因此,我尝试了一些不同的修复程序。 Z-index是我希望可以用来解决此问题的方法。没有这种运气。我可能会尝试用普通输入type = text替换文本区域,但是由于复选框也显示此错误,我怀疑单行文本输入也会导致该错误。

解决方案

如果我没记错的话,Z-Index仅适用于绝对定位的块元素。因此,尝试将弹出框的位置设置为绝对位置,然后尝试z-index。如果需要将弹出窗口置于某个位置,请将包装元素设置为相对位置。我以前曾遇到过这个问题,并且我相信我已经按照我所描述的方式解决了这个问题。

除了块元素外,z-index还可用于所有具有IE所谓的hasLayout的元素。阅读更多

触发" hasLayout"(在另一篇文章中提到)的最简单方法是添加" zoom:1"。

调试一些最愚蠢的IE 6/7显示问题时,有时我会只转储一个临时文件

* {
    zoom: 1;
}

到我的CSS,看看是否有任何变化。如果是这样,我开始有选择地将其添加到以元素,元素的父/子等开头的元素中。

IE仅支持zoom,因此将其包含在文档中非常"安全"。这也使我们不必做任何疯狂的事情,例如绝对定位元素等。

我在IE7中的输入字段和文本区域都遇到了完全相同的问题,但前提是我给了它们一个宽度。

我不记得我从哪里得到的,但是我找到了这个解决方案,它可能不是很好,但是它解决了这个问题。只需添加:

filter:alpha(opacity=100)

到麻烦字段的样式属性的CSS。