【发布时间】:2015-03-19 01:32:51
【问题描述】:
我有一个父容器,以及该容器内的一个按钮。当您单击父级时,我希望整个事件处于活动状态并应用背景颜色以指示单击已被注册。但是,当我单击孩子时,我只希望孩子处于活动状态,以便背景颜色仅应用于孩子,并且很清楚单击已注册的位置。如何阻止 :active 状态传播到父级?
这是我正在尝试做的一个示例:
HTML
<div class="container">
<div class="inner-button"> hello </div>
</div>
CSS
.container {
width: 100%;
height: 45px;
border: solid 1px;
}
.inner-button {
width: 45px;
height: 30px;
border: solid 1px;
}
.container:active {
background-color: #00FF00;
}
.inner-button:active {
background-color: #FF3300;
}
在这个例子中,我希望当你点击外部 div 时整个东西都会闪烁绿色,并且只有内部 div 在被点击时会闪烁红色。目前,无论您点击哪里,外部 div 都会闪烁。
编辑:
我确实尝试在事件中调用stopPropagation(),但它对状态没有帮助。
【问题讨论】:
-
我不认为只有 CSS 可以做到这一点。可能需要 JavaScript。
-
谢谢@j08691!如何使用 javascript 来实现这一点?我尝试在 click 事件上使用 event.stopPropagation(),但没有帮助
标签: html css propagation