将鼠标悬停在一个div上,改变另一个div的颜色,但淡出所有未悬停的div

时间:2013-10-17 08:54:01

标签: css html fadeout

我已经减少了我想要实现的目标,因此更容易理解。

好的所以我有三个div如下(全部水平对齐)

<div id="MainGrid">
    <div id="Row1">
        <div id="row1floatleft">
        </div>
        <div id="row1floatRight">
        </div>
        <div id="row1floatMiddle">
        </div>
    </div>
</div>

当我将鼠标移到row1floatleft上时,它改变了row1floatmiddle的背景颜色,这是完美的工作,我遇到的问题是试图淡出row1floatright div

这是我的css

#MainGrid
{

 width:900px;
 margin:0 auto;
 border:1px solid black;   
}

#Row1
{
 width:900px;
 margin:0 auto;
 border:1px solid blue;   
}

#row1floatleft
{
width:299px;
float:left;
height:150px;
border:1px solid red;
background-color:Red;
}

#row1floatRight
{
width:299px;
float:right;
height:150px;
border:1px solid yellow;
background-color:Yellow;
}

#row1floatMiddle
{
width:299x;
height:150px;
border:1px solid green;
background-color:Green;
}

#row1floatleft:hover ~ #row1floatMiddle
{
background-color:Blue;
}

我正试图复制这个 http://www.virgin-atlantic.com/us/en/the-virgin-experience.html

所以我将鼠标移到row1floatleft上,它会改变row1floatMiddle的背景色,但是需要淡出所有其他没有悬停的div,我已经尝试过了(:Hover)

#row1:not(:Hover)
{
background-color:Orange;
}

但不与

互动
  #row1floatleft:hover ~ #row1floatMiddle
{
background-color:Blue;
}

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

我在这里创造了一个小提琴:http://jsfiddle.net/fLJZv/1/

你的css中有错误:

#row1floatMiddle
 {
   width:299x;
 }

缺少像素的'p'。

我添加了更多CSS:

#row1floatMiddle
  {
     margin: 0 0 0 299px;
  }

#row1floatleft:hover ~ #row1floatMiddle
{
opacity: 0.5;
}
#row1floatleft:hover ~ #row1floatRight
{
opacity: 0.5;
}

小提琴(至少)现在有效。 。