html - 将鼠标悬停在链接上时更改父元素或祖先元素的颜色

标签 html css

我在一个网站上工作,当我将鼠标悬停在该导航栏的子链接或后代链接上时,我想更改整个导航栏的颜色。

.containernav {
  margin: 0;
  padding: 0;
  background-color: grey;
}
/*home*/
#home {
  color: white;
}
#home:hover {
  background-color: white;
}



/*playstation*/
#playstation {
  color: white;
}
#playstation:hover{
  background-color: blue;
}



/*xbox*/
#xbox {
  color: white;
}
#xbox:hover{
  background-color: green;
}



/*pcgaming*/
#pcgaming {
  color: white;
}
#pcgaming:hover {
  background-color: #FFBA00;
}




 nav > ul {
   list-style: none;
 }

nav > ul > li > a {
  text-decoration: none;
}
<div class="containernav" id="a">
    <nav>
      <ul>
        <li><a id="home" href="index.html">Home</a></li>
        <li><a id="playstation" href="playstation.html">Playstation</a></li>
        <li><a id="xbox" href="xbox.html">XBox</a></li>
        <li><a id="pcgaming" href="pcgaming.html">PC-Gaming</a></li>
      </ul>
    </nav>
</div>

我当前的实现仅更改链接本身的颜色,但不更改具有 css 样式类 containernav 的容器。需要更改什么才能更改该容器的背景颜色?

最佳答案

这是 css 无法实现的。关于这个问题有几个主题——其中一些要求 :parent 选择器,其中一些说这将是一个巨大的性能问题。 但是,如果这是您的选择,您可以使用 javascript 执行此操作。 这是一个使用 Jquery 的简单示例:

$("#child").hover(function(){
     $(this).parent().css("bakground,"red");
     //This should be ajusted according your needs
     // Can be achieved with data attribute, custom class etc..
 });

关于html - 将鼠标悬停在链接上时更改父元素或祖先元素的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46788454/

相关文章:

html - anchor 链接不可全宽点击

css - 将 Ionic 卡片与 Angular 指令垂直对齐

html - Vim 和 NeoVim 无法检测 Django HTML 文件类型

javascript - 如何检测用户从外部窗口在 iframe 中导航到的 URL?

jquery - 滚动到另一个元素时如何使我的元素可见?

javascript - Jquery - 调整大小后单击事件不起作用

javascript - 从本地存储检索数据对象并将其重新加载到数组中

php - 用于 AJAX 实时搜索的箭头键和鼠标导航

html - 无法将完整图像显示为 css 背景

javascript - 在不使用溢出的情况下隐藏 HTML 页面上的默认滚动条 :hidden?