IE 悬停选择问题
我和一个朋友正在尝试解决 IE (7/8)。我们在这里构建了一个规范示例:
http://www .mathgladiator.com/share/ie-select-bug-hover-css-menus.htm
使用 CSS 菜单,我们希望在其中进行选择。但是,在 IE 中,当您与选择框交互时,菜单就会消失。我们认为这与选择如何影响事件的错误有关。
有解决方法吗?至少使用纯 CSS 或 DOM 黑客?
A friend and myself are trying to workaround IE (7/8). We have built a canonical example here:
http://www.mathgladiator.com/share/ie-select-bug-hover-css-menus.htm
Using a CSS menu, we would like to have selects in them. However, in IE, the menu goes away when you interact with the select box. We believe this has to do with a bug in how selects affect events.
Is there a workaround? At least with pure CSS or DOM hacks?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不认为有一个纯粹的 CSS 方法可以解决这个问题。这是由于 IE 处理选择元素上的事件的方式存在一个非常常见的错误。
不过,您可以使用 Javascript 解决这个问题:
上面的代码使用 jQuery。
I do not think there is a pure CSS way around this. This is due to a very common bug to the way IE handles events on select elements.
You can however work around it with Javascript:
The code above uses jQuery.
这是一种改进 IE7/8 中选择行为的方法,但它不能解决问题
更改 DOCTYPE
添加脚本
添加 css
它会起作用至少更好,但当然并不完美。
我的建议是将选择控件更改为 html 等效控件。我使用 OboutDropDown ,它的视图很好。有许多实现可以满足您的需求。
Here is a way to improver select behavior in IE7/8, but it does not fix the issue
Change DOCTYPE
Add script
Add css
It will work better at least but of course not perfect.
My advice is to change select control to html equivalent. I use OboutDropDown that has a nice view. There are many implementations that can suite you needs.
首先,您需要展开菜单下方的 :hover 界面。
因此,在您的 css 中将
width:310px;height:220px
添加到#nav .nav_element a
。(还可以在使用
top:220px
样式的第二个 div 上添加类或 id)现在您只需要模拟当您点击时触发的mousedown > 在选择上,当选项之间的选择完成时,它将停止 - 如果您检查选择的 onfocus 状态,您可能可以执行最后一部分,这将停止鼠标按下。
First you need to expand the :hover surface underneath your menu.
So in your css add
width:310px;height:220px
to#nav .nav_element a
.(also add a class or an id on the second div styled with
top:220px
)Now you just need to simulate a mousedown triggered when you click on the select which will halt when the selection between the options is done - you can probably do the last part if you check for the onfocus state of the select which will stop the mousedown.