首先:对不起我的英语不好。
我只在 Chrome、Opera 和 Safari 上看到过这个问题,所以我想这是一个 webkit 问题。
我正在对按钮进行样式设置以赋予它们“推动”效果。
问题是,如果我在某些点、在某些高度单击按钮,它不会触发“单击”事件。
我创建了一个小提琴来更好地理解我的问题;基本上这是我正在使用的CSS:
input[type="submit"], input[type="button"], button, .btn{
position: relative;
display: inline-block;
border: none;
padding: 4px 10px;
text-align: left;
color: #222222;
font-weight: bold;
background-color: transparent;
top: 1px;
bottom: 0;
vertical-align: baseline;
transition: none!important;
-webkit-transition: none!important;
}
input[type="submit"], input[type="button"], button, .btn{
background-color: #444444;
color: #FFF!important;
text-decoration: none;
text-align: center;
border-bottom: 3px solid rgba(0,0,0,0.75);
}
input[type="submit"]:hover, input[type="button"]:hover, button:hover, .btn:hover{
top: 0;
border-bottom-width: 4px;
cursor: pointer;
}
input[type="submit"]:active, input[type="button"]:active, button:active, .btn:active, .btn.selected{
top: 4px;
border-bottom-width: 0;
bottom: 0;
}
.btn:hover, .btn:active{
color: #FFF;
}
我期待它在按钮顶部附近(我增加“顶部”,所以如果我将按钮向下移动太多,光标不再位于按钮上,这是正常的行为),但它在文本下也不起作用.
那个,是我没想到的。
一开始我以为只有当光标正好在按钮文本上时它才起作用,但是如果我单击底部边框它就起作用了。
到目前为止,我最好的猜测是元素的“移动”会干扰单击事件(就像我按下鼠标按钮并在释放光标之前移动光标一样)。
只是想知道是否有人遇到了这个问题并解决了它。
在 Firefox 和 IE10 上我没有问题(仅在顶部附近,但这是预期的行为)。
谢谢你。