【发布时间】:2013-04-25 07:35:07
【问题描述】:
我在div 中有一个textarea。 textarea 与div 的大小几乎相同,仅在其周围留下一条窄条div 可见。我想要实现的(最好仅使用 CSS)是当鼠标光标在其上时,div 的背景会发生变化,但在 textarea 上方时不会发生变化。换句话说,如果鼠标光标位于 textarea 周围可见的 div 条的顶部,我希望 div background color 改变,但如果它位于 textarea 本身的顶部,我不希望它改变
这是一个说明问题的 jsfiddle:
HTML:
<div class="mydiv">
<textarea class="mytextarea"></textarea>
</div>
CSS:
.mydiv {
position: absolute;
left: 0px;
top: 0px;
width: 200px;
height: 200px;
background-color: green;
}
.mydiv:hover {
background-color: blue;
}
.mytextarea {
position: absolute;
top: 10px;
bottom: 10px;
left: 10px;
right: 10px;
resize: none;
background-color: yellow;
}
div 是绿色,textarea 是黄色。如果我将鼠标移到 div 上,它会变成蓝色。但我不希望鼠标在textarea 上时它变成蓝色。
提前致谢。
【问题讨论】:
-
在当前的 CSS 实现中是不可能的 :( 使用 JavaScript 在悬停时更改颜色(使用
event.stopPropagation()) -
$('.mytextarea').mouseover(function() { $('this').parent().css('background-color', 'green'); });
-
没有什么是不可能的.....
-
如果你打破不可能......我可能
-
@khan:仅使用 CSS 是不可能的;当然你可以用 JS 轻松做到:)