CSS或JS规则适用于所有Div更改Div内部Div的BG颜色,而不更改父Div
CSS or JS Rule for all Divs to Change BG Color of Div inside Div, Without Changing Parent Div
我知道这看起来微不足道,但我很难理解这一点。
<div id="divA" style="width: 400px; height: 400px; background-color: #FF0000;">
<div id="divB" style="float: left; width: 200px; height: 200px; background-color: #FFFF00;">
<div id="divC" style="float: left; width: 100px; height: 100px; background-color: #FF00FF;">
</div>
</div>
</div>
我需要的是一个适用于所有div的规则,比如div:hover{background-color:#000000!important;},它只影响事件的第一个父div(当我悬停divC时,我希望divC的背景色变为黑色,但不希望divB或divA的背景色)。。。就像谷歌浏览器中的检查员一样。
有什么想法吗?
我不认为只使用CSS可以做到这一点,但使用JavaScript可以做到。
关键是在鼠标悬停事件上使用event.stopPropagation()
。
下面是一个使用jQuery的示例:http://jsfiddle.net/K96DS/2/
$('div').on('mouseover', function(){
$(this).addClass('hovered')
// this is the key, this stops te mouover event
// from bubbling up to the parent elements
event.stopPropagation();
}).on('mouseout', function(){
$(this).removeClass('hovered')
})
你是不是因为悬停中的一个奇怪行为而考虑使用这样的东西?
.mouseover(function(){
$(this).addClass('selected');
});
你在找这样的东西吗?
jQuery解决方案:
$('div').each(function(){
$(this).on({
mouseover:function(){
$(this).css('background-color','black');
},
mouseout:function(){
$(this).css('background-color','');
}
});
});
http://jsfiddle.net/j8ebE/2/
#divC:hover #divA { background-color: #FF0000 !important; }
#divC:hover #divB { background-color: #FFFF00 !important; }
也许是黑客…:)
相关文章:
- 根据其宽度更改DIV背景颜色
- Div 渐变的颜色选择器
- IE DIV悬停区域不一样.直到我添加背景颜色
- JS - 使用变量设置 Div 背景颜色
- 按下箭头键时 JS Div 不会改变颜色
- 通过表单验证更改 DIV 边框颜色
- 内部 DIV 颜色文本在鼠标悬停时没有更改
- 使用 Javascript 将 Div 的背景颜色更改为变量的值
- 上次单击DIV永久颜色,由于某种原因不起作用
- 通过点击更改日期字符串并更改 DIV 背景颜色
- 更改表单中所有输入的 DIV 背景颜色
- 鼠标悬停在DIV上,更改图像边框颜色
- 当在chrome中使用-webkit时,使用jquery的Div颜色更改不起作用
- 如何在JavaScript中更改Div子元素的文本颜色
- CSS或JS规则适用于所有Div更改Div内部Div的BG颜色,而不更改父Div
- 更改DIV背景颜色
- 改变颜色的标签和Div周围输入+标签点击
- 从中心用颜色填充圆形Div
- 改变颜色导航Div从特定的Div传递
- Div在刷新页面后保存其颜色