将鼠标悬停在一个 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)?感谢您的帮助。
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 上使用悬停
ul:hover .product{background: green;}
ul:hover li:hover{background: none;}
我有一个 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)?感谢您的帮助。
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 上使用悬停
ul:hover .product{background: green;}
ul:hover li:hover{background: none;}