我从来不是
javascript下拉菜单的忠实粉丝,所以当我可以使用CSS设置下拉菜单时,我会.但现在我遇到了一个小问题.
我有一个登录按钮和一个小的登录表单模块,它是按钮的兄弟.当我将鼠标悬停在按钮上时,登录表单会直接显示在它下面(通过在他的兄弟上设置display:block),你可以转到表单上悬停在表单上的表单,这样表单模块就不会再次消失.
一切都很简单:
#home-login-button:hover + #login,#login:hover { display: block; }
我遇到的问题是,当我输入一封信时,我的浏览器想要自动完成.例如,如果我键入“h”,则会删除“Hans Wassink”.但当我悬停那个自动完成框时,整个东西就像一个泡泡一样.我不再徘徊登录模块,所以它消失了.很烦人.有什么我能做的吗?我知道我可以将自动完成设置为“关闭”但我希望我的用户拥有该选项.
我注意到当我使用相同的解决方案但使用jQuery时也会发生这种情况.
编辑:完成问题.我在FF28 / Windows上.但我的同事在这里也有其他版本的FF和IE(接待员,其余的有真正的浏览器:)).
解决方法
这是一个Jquery解决方案.
<div class="login"> <span>Login</span> <div class="login_form"> <label for="email">Email:</label> <input type="text" id="email" name="email" value="" /> </div> </div>
CSS代码
.login { position: relative; height:60px; width:50px; margin:30px; } .login > span { cursor: pointer; } .login_form { Box-shadow: 0 0 1px; padding:10px; position: absolute; left: 0px; top: 30px; z-index: 9999; display: none; }
JQUERY CODE
$('.login').on('mouSEOver',function () { $('.login_form',this).show(); }).on('mouSEOut',function (e) { if (!$(e.target).is('input')) { $('.login_form',this).hide(); } });