クリック深度が指定されているボタンがあります(つまり、:active状態で数ピクセル下に移動します)が、ボタンがクリックされても何も起こらないという問題が発生しています。
<button>Button</button>
button:active {
margin-top: 5px;
}
私はjsfiddleで問題を説明しました:
http://jsfiddle.net/helenst/vUU55/
Chromeでは、テキストの上下にクリックの深さに等しい高さの薄いストリップがあり、クリックイベントは発生しません。(たとえば、「B」の1〜2ピクセル上をクリックしてみてください)mousedownとmouseupの両方が受信されますが、クリックは発生しません。
FirefoxとOperaでは、ボタンの上部に同じサイズの領域があり、マウスのクリックが反応しません。マウスダウンはボタンの内側にありますが、マウスアップはボタンの外側にあるという点で、これは少し論理的です。この領域をクリックして、ボタンを離す前にマウスをボタンにドラッグして戻すと、クリックがアクティブになります。
ただし、それでも完全には意味がありません。コンテナをボタンの周りにラップし(すべてのボタンの状態がその中に含まれるように)、コンテナのイベントを検出すると、問題は引き続き発生します。
クリック深度を削除すると、すべて問題ありません。
マウスダウンイベントに応答させてから、ドキュメントでマウスアップを検出できると思いますが、これは回避できる可能性がありますが、通常のボタンの動作に違反しているため、JavaScript以外のソリューションが必要です。誰か助けてもらえますか?