アクティブであるときにCSSが外観を制御するいくつかのネストされた要素を持っています。最もネストされた要素だけを一度にACTIVEにする方法を教えてください。
CSS:
.test {
background: red;
}
.test:active {
background: blue;
}
HTML:
<div class="test" id="A">
This is part A.
<div class="test" id="B">
This is nested part B.
</div>
</div>
問題が、あるとき、ネストされたDIV(B)、両方のAとBの色が変化し、代わりにちょうどBの私は、マウスダウン。
Iは、マウスダウンイベントをキャプチャし、伝播を停止しようとした:
document.getElementById("B").addEventListener("mousedown", function(event) {
event.stopPropagation()
})
これを実行すると、 "A"のmousedown
イベントハンドラが呼び出されていないことがわかります。しかし、 "A"要素は、キャプチャされたイベントが起動される時点で既にそのアピアランスをアクティブ状態に変更しました!
一度に実際に最もネストされた要素をアクティブにすることのみを強制する方法を教えてください。バックグラウンドを変更するには "A"が必要ですが(マウスが押されている)、 "B"がアクティブになっているときは変わりません。
Bは高さがありませんので、Aと同じサイズになる可能性があります。期待どおりに動作している可能性があります。 – rjustin
私の解決策を見て、私はそれがあなたが探しているかもしれないと思う。 – mhodges