我正在寻找解决鼠标悬停问题的方法。
<div class="section">
<div class="image"><img src="myImage.jpg" /></div>
<div class="layer">Lorem Ipsum</div>
</div>
现在,image和layer两个类都有边框。它们分别有正常和悬停状态下不同的颜色。 有没有办法使得当悬停在layer类时,同时激活layer和image类的悬停边框颜色呢?反之亦然?
你不需要使用JavaScript来实现这个功能。
使用一些CSS就可以了。以下是一个示例:
<html>
<style type="text/css">
.section { background:#ccc; }
.layer { background:#ddd; }
.section:hover img { border:2px solid #333; }
.section:hover .layer { border:2px solid #F90; }
</style>
</head>
<body>
<div class="section">
<img src="myImage.jpg" />
<div class="layer">Lorem Ipsum</div>
</div>
</body>
</html>
这对我在Firefox和Chrome和IE8中都有效...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
div.section:hover div.image, div.section:hover div.layer {
border: solid 1px red;
}
</style>
</head>
<body>
<div class="section">
<div class="image"><img src="myImage.jpg" /></div>
<div class="layer">Lorem Ipsum</div>
</div>
</body>
</html>
... 你可能也想在IE6上进行测试(我不确定它是否能在那里正常工作)。
我认为最好的选择是将这两个div都包裹在另一个div中。然后您可以使用以下CSS进行设置:
<html>
<head>
<style>
div.both:hover .image { border: 1px solid blue }
div.both:hover .layer { border: 1px solid blue }
</style>
</head>
<body>
<div class="section">
<div class="both">
<div class="image"><img src="myImage.jpg" /></div>
<div class="layer">Lorem Ipsum</div>
</div>
</div>
</body>
</html>
实现这并不难,但需要使用javascript的onmouseover
函数。伪代码:
<div class="section">
<div class="image"><img src="myImage.jpg" onmouseover=".layer {border: 1px solid black;} .image {border: 1px solid black;}" /></div>
<div class="layer">Lorem Ipsum</div>
</div>
您可以自己选择颜色,也可以在mouseover命令中引用javascript函数。
$(function(){
$("#innerContainer").hover(
function(){
$("#innerContainer").css('border-color','#FFF');
$("#outerContainer").css('border-color','#FFF');
},
function(){
$("#innerContainer").css('border-color','#000');
$("#outerContainer").css('border-color','#000');
}
);
});
.videoTitle:hover{
color: #1270cf;
}
.videoTitle:hover .copy{
display: block;
}
或者
.section:hover > div {
background-color: #0CF;
}
注意 父元素的状态只能影响子元素的状态, 因此您可以使用:
.image:hover + .layer {
background-color: #0CF;
}
.image:hover {
background-color: #0CF;
}
但是你不能使用
.layer:hover + .image {
background-color: #0CF;
}