css - HTML/CSS : a:hover doesn't seem to change other div?

标签 css html

我可能已经监督了一个非常愚蠢的错误,但我无法找出为什么这不起作用:

这是我的 HTML,它是一个简单的菜单,如果我将鼠标悬停在“Home”或“Play”上,div“deco”的字体颜色会变为红色...

<div class="menu">
<h1>
    <a href="#">HOME</a> <a href="#">PLAY</a> <a href="#">LOGIN</a>
     <div id="deco">A</div>
</h1>
</div>

CSS:

body { 
height:100%;
width:100%;
display: block;
background-color: #000;
overflow: hidden;
margin: 0;
padding:0;
}

.menu {

margin-top:10%;
margin-left: auto; 
margin-right: auto; 
text-align: center;
}

h1 { 
font-family: "Dauphin";
color: #FFFFFF;
} 

a {
color: #FFF;
text-decoration: none;  
}


a:hover #deco{
color: red;
}

#deco {
font-family: "Invader";
top: 123px;
color: #FFF;
width:100%;
height:100%;
text-align: center;
}

最佳答案

您的选择器与元素不匹配。要使 a:hover #deco 正常工作,div 必须像这样位于 anchor 内:

<a href="#">HOME
     <div id="deco">A</div>
</a> 

现代浏览器支持通用兄弟选择器~:

a:hover ~ #deco

如果您需要支持不支持通用同级选择器的浏览器,您可以使用 jQuery 实现,如下所示:

$('a').hover(
    function() { $('#deco').addClass('link-hover'); }, 
    function() { $('#deco').removeClass('link-hover'); });

并定义 CSS:

#deco.link-hover {
    color: red;
}

关于css - HTML/CSS : a:hover doesn't seem to change other div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13960213/

相关文章:

javascript - asp.net mvc 脚本和样式引用

html - 如何在 HTML 和 CSS 中根据自身大小重新缩放图像

css - Outlook 向电子邮件中的表格添加了不需要的间隙

jquery - 选择没有标签的元素

javascript - 如何创建元素并设置未命名参数

javascript - 这个正则表达式怎么写?

javascript - 在导航栏中选择一个元素,然后它会导致在页面中显示文本

html - CSS 导航栏着色问题

html - 使用内联 block 的 CSS 布局在父 div 中留下间隙

javascript - 使用文本区域和 CSS 字体大小在 Internet Explorer 中出现故障