html:悬停时导航样式更改

时间:2014-06-17 10:28:37

标签: javascript css html5 menu hover

这是代码的一部分,当我将鼠标悬停在不同的div上时,我正在尝试更改菜单项颜色。我可以修改背景颜色,但不能修改实际的文字颜色。

<!DOCTYPE html>
<html>

<head>
<title>Untitled</title>
<style type="text/css">
.navigation li a { color: grey;}
</style>
</head>

<body>
<ul  class="navigation" id="nav">
<li id="a" onmouseover="chbg('red')" onmouseout="chbg('black')"><a href="#abt">ABOUT </a></li>
<li id="b" onmouseover="chbg1('red')" onmouseout="chbg1('white')"><a href="#sequence">CONTENT</a></li>
</ul>
<script type="text/javascript">
function chbg(color) {
    document.getElementById('b').style.Color = color;
}
function chbg1(color) {
    document.getElementById('a').style.backgroundColor = color;
}
</script>
</body>
</html>`

需要帮助解决此问题。 感谢

3 个答案:

答案 0 :(得分:1)

您正在为li应用颜色,但a已从CSS获得color: gray;

正如评论中所提到的,使用CSS而不是JavaScript处理这样的事情要好得多。

a {
  color: gray;
}

a:hover,
a:focus {
  color: red;
}

li:hover {
  background-color: gray;
}
编辑:你似乎拼错了gray。在CSS中使用美国拼写。这是我使用十六进制值的部分原因。

答案 1 :(得分:1)

使用CSS更容易

.navigation #a {
  background:black;
}

.navigation #b {
  background:white;
}

.navigation li:hover {
  background:black;
}

答案 2 :(得分:0)

Demo

#a {
    background-color: black;
}
#b {
    background-color: white;
}
#b:hover {
    background-color: red;
}
#a:hover > a {
    color: green;
}
#b:hover > a {
    color: yellow;
}

HTML

<ul class="navigation" id="nav">
    <li id="a"><a href="#abt">ABOUT </a>
    </li>
    <li id="b"><a href="#sequence">CONTENT</a>
    </li>
</ul>