如何改变div颜色?

时间:2013-10-16 12:07:24

标签: html css

如何更改div bg color从鼠标悬停在另一个div上时...... {/ p>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
.Div1{width:100px; height:100px; background-color:red; float:left; margin-right:30px; }
.Div2{width:100px; height:100px; background-color:#00C; float:left }
</style>
</head>
<body>
<div class="Div1">asdlsakd</div>
<div class="Div2">asdsa</div>
</body>
</html>

当我将鼠标悬停在div2上时,我想将div1的颜色更改为黄色?

这是我的小提琴链接:http://jsfiddle.net/anupkaranjkar/S5Yu5/

7 个答案:

答案 0 :(得分:2)

jQuery方式:

尝试使用jQuery .show();.hide();功能。

HTML:

<div id="div1">This is div1</div>
<div id="div2">This is div2</div>

CSS:

#div1{
    width:100px;
    height:100px;
    background-color:red;
}

#div2{
    width:100px;
    height:100px;
    background-color:blue;
    display:none;
}

jQuery的:

$("#div1").hover(function() {
    $("#div2").show();
    }, 
function() {
    $("#div2").hide();
});

不要忘记链接到jquery.min.js

<script src="http://code.jquery.com/jquery-latest.min.js"></script>添加到您的<head></head>代码中。否则它将无法工作。

看一下 fiddle

修改

纯CSS:

在你的div周围放一个容器,如下所示:

<div id="content">
    <div id="div1">This is div1</div>
    <div id="div2">This is div2</div>
</div>

之后,您可以这样使用:first-child:hover

//styling your divs
#div1{
    width:100px;
    height:100px;
    background-color:red;
}

#div2{
    width:100px;
    height:100px;
    background-color:blue;
    display:none;
}

//hover function
#content > div:first-child{
    display:block;
}

#content > div:hover + div {
    display:block;
}

如果您想在实践中看到它,请查看 demo

答案 1 :(得分:1)

如上述用户所述,您应该使用:hover来实现这一目标。然而,他们给你一个例子当你盘旋div本身时该做什么。

你的问题是如果你改变颜色如果你去了另一个div,所以继承代码,这意味着第二个div嵌套在第一个div中:

Div1:hover Div2 {
    background-color: yellow;
}

以下是使用JQuery实现的示例,无论它们是否嵌套都无关紧要:

var defaultBackground = $("div#two").css("background-color");
$( "div#one" )
  .mouseover(function() {
      $("div#two").css("background-color", "yellow");
  })
  .mouseout(function() {
    $("div#two").css("background-color", defaultBackground);
  });

http://jsfiddle.net/d58Rb/


为了匹配您的HTML代码,我更新了JSFiddle: http://jsfiddle.net/S5Yu5/1/


以防万一其他人需要这个解决方案(我在任何地方都看不到)

这可以使用CSS / HTML,但前提是div直接位于彼此之下。

#Div1:hover + Div2 {
    background-color: yellow;
}

答案 2 :(得分:0)

您需要的是:hover

Div1:hover {
  background-color:yellow;
}

答案 3 :(得分:0)

您只需使用css

即可
Div1:hover {
      background-color:yellow;
}

OR

使用JQuery

$("div").hover(function() { // mouseenter
    $(this).addClass("hover");
    }, function() { // mouseleave
    $(this).removeClass("hover");
});

CSS

.hover {
      background-color:yellow;
}

答案 4 :(得分:0)

使用像这样:

<div id="mydiv" style="width:200px;background:white"  onmouseover="this.style.background='gray';" onmouseout="this.style.background='white';">
Hello World!
</div>

答案 5 :(得分:0)

选择并设置紧跟在元素后面的每个元素:

 .first:hover +div{background:red;}  
    <div class="first"> 
          some    
      </div>
      <div>other</div>

例2

   .first:hover div{background:red;}

   .first{border:1px solid blue;width:100px;height:100px}

      <div class="first"> 

          <div>other</div>
      </div>

答案 6 :(得分:-1)

无需制作div 2来实现此目的。

Div1{width:100px; height:100px; background-color:red; }
Div1:hover{width:100px; height:100px; background-color:blue; }

只需将:hover伪选择器应用于现有的div 1,您就会获得悬停效果。