【发布时间】:2010-12-17 15:14:59
【问题描述】:
我在使用 FIREFOX 时遇到问题。我对下拉控件(html'select')有一个不可见的列表控件。不介意为什么,但我会说覆盖层是作为另一个自定义控件的一部分出现的弹出窗口。
即使它是隐藏的,它也会阻止我单击底层下拉控件,从而使底层控件看起来被禁用。虽然它没有被禁用,因为我可以切换到它。我只是无法点击它。我知道这是导致问题的叠加层,因为我将底层控件移到了一边,它又可以工作了。
这是 Firefox 中的错误吗?这不像设置半透明值。它完全禁用了控件的渲染,所以我认为这样一个不可见的控件不应该拦截鼠标事件。 此行为在 Internet Explorer 中不会发生。
也许我可以在 JavaScript 中设置一些其他 CSS 属性来切换其鼠标事件捕获能力及其可见性。
dd = document.getElementById('lstStudents');
if (dd.style.visibility == 'hidden') dd.style.visibility = 'visible'; else dd.style.visibility = 'hidden';
更新:我刚刚阅读了 CSS 可见性值“隐藏”的描述,内容为“元素不可见(但仍占用空间)”。所以我想我必须将它的高度设置为零以及设置它的可见性来解决这个问题。
【问题讨论】:
-
如何使“不可见的列表控件”不可见。示例代码?
-
CSS 可见性属性,通过 javascript 切换。在运行任何 JavaScript 之前,控件的初始样式将可见性设置为“隐藏”。这是 IE 和 Firefox (3.5.5) 之间行为的明显差异。
标签: css firefox drop-down-menu mouseevent visibility