сan我用:不是為了在整個列表上制造懸停效果,而是懸停在三個上面沒有懸停在整個列表上?
我似乎并不完全理解這東西是如何工作的。我做不到
是的,您可以使用:not表示排除。三里
li:not(.three):hover{
color:red;
}
<ul class="promocode">
<li>one</li>
<li>two</li>
<li class="three">three</li>
</ul>
您可以使用has()來實現這一點:
ul:hover:has(li.three:not(:hover)) {
background: gray;
}
<ul class="promocode">
<li>one</li>
<li>two</li>
<li class="three">three</li>
</ul>
如果要求如所述:即改變背景顏色的ul時,任何李除外。三是懸停,那么這可以用一個偽before元素。
該代碼片段將ul設置為相對位置,并將一個before偽元素設置為懸停在。三個lis被設置為具有ul的完整高度和寬度以及絕對位置。
這將帶有背景色。
<style>
ul {
position: relative;
display: inline-block;
}
.promocode>li:not(.three):hover::before {
content: '';
position: absolute;
width: 100%;
height: 100%;
background: gray;
top: 0;
left: 0;
display: inline-block;
pointer-events: none;
z-index: -1;
}
</style>
<ul class="promocode">
<li>one</li>
<li>two</li>
<li class="three">three</li>
</ul>
上一篇對齊兩張采購卡的高度
下一篇實現css不顯示[關閉]