将鼠标悬停在一个 HTML 元素上影响另一个

Hover on one HTML element effect another

我有一个 Prestashop 1.6.0.14 商店,里面有很多产品。主要想法是让网格中显示的每个产品都变得不透明,除了悬停的产品。

这是我的代码(简化版):HTML

<div id="tab-content">
<ul id="list">
<li class=product></li>
<li class=product></li>
<li class=product></li>
<li class=product></li>
<li class=product></li>
</ul>
</div>

我找到了一些解决方案 HERE 但是使用选择器“+”或“~”只会影响我悬停的容器之后的容器,而不是之前的容器。有什么解决办法吗(CSS,JS)?感谢您的帮助。

Here is my website

CSS 中有一个属性可以做到这一点!

您可以尝试类似的方法:

ul {
  display: inline-block;
  overflow: hidden;
  border: 1px solid;
  list-style: none;
  margin: 0;
  padding: 0;
}
ul:hover li {
  opacity: 0.5;
}
ul li:hover {
  opacity: 1;
}
li{
  float: left;
  padding: 10px;
  border-left: 1px solid;
  background-color: #eee;
}
li:first-child{
  border-left: 0;
}
<ul>
  <li>lorem</li>
  <li>ipsum</li>
  <li>dolor</li>
  <li>hello</li>
</ul>

ul:hover li {
  background-color: #000;
}

ul li:hover {
  background-color: #fff;
}

我对您的 post 的最初评论是建议使用 :not() 选择器,但这不是一个好的答案。 :) 这是一个解决方案,它不是很好,但它是 CSS 解决方案。

有人在我创建 jsfiddle 时抢先一步 - 在 ul 上使用悬停

JSFiddle

ul:hover .product{background: green;}
ul:hover li:hover{background: none;}