我想要一个按钮在单击时“按下”。但是,我尝试的方法产生了不良影响 - 按钮上某些位置的一些点击没有被注册。
这个问题与 JavaScript 无关。我已经链接到下面的 JSFiddle,它使用 JavaScript 点击事件监听器,但这只是为了更好地描述问题。我面临的实际问题与事件侦听器无关 - 在各个位置单击时,超链接本身不起作用(浏览器无法导航到链接页面,即使 CSS:active
类工作正常,浏览器的行为为如果甚至没有点击)。
我正在尝试设计的胖胖的、可按下的按钮。
我正在使用的 CSS:
a.fatButton {
display: inline-block;
position: relative;
margin: 8px;
padding: 16px;
background: #faa;
border-radius: 16px;
box-shadow: 0 8px 0 0 #f88;
text-decoration: none;
color: #000;
}
a.fatButton:active {
top: 8px;
box-shadow: none;
}
容器 div 内按钮的 HTML:
<div id="linkContainer">
<a class="fatButton" href="#">Click me</a>
</div>
这是更深入地描述问题的 JSFiddle:http: //jsfiddle.net/g105b/d3Y9X/
这是问题的记录:http: //youtu.be/N6UfWdbA1Ac
问题是当按钮有任何移动时......这可能是“顶部”属性的变化 - 就像在这个例子中 - 一个边距顶部,一个负边距底部,一个translateY,填充顶部.. . 必须有一种方法可以创建这种类型的按钮按下效果而不会出现此问题?
我使用的是用于录制视频的 Chrome 29,但问题在 Firefox 23 中也很明显,尽管“无效区域”位于 Firefox 中按钮的不同位置。