Html 内部伪类:不是

Html 内部伪类:不是,html,css,css-selectors,Html,Css,Css Selectors,是否可以在:not标记内使用伪类 例如: li:not(.inner:hover):hover { // Code } <li> <div class="inner"></div> </li> li:not(.inner:hover):hover{//code} 当我在不使用javascript的情况下悬停一个内部项时,我试图取消父悬停的效果 上面代码的预期结果是当您悬停li而不是内部div时,li get会产生悬停效果。但前提是你

是否可以在:not标记内使用伪类

例如:

li:not(.inner:hover):hover { // Code }

<li>
   <div class="inner"></div>
</li>
li:not(.inner:hover):hover{//code}
  • 当我在不使用javascript的情况下悬停一个内部项时,我试图取消父悬停的效果

    上面代码的预期结果是当您悬停li而不是内部div时,li get会产生悬停效果。但前提是你不在内心盘旋

    更新


    我想要的是,当.inner变为黑色时,li变回红色。

    您可以使用简单的css而不是伪类

    HTML


    演示

    是,但您同时使用了类和伪类,这是无效的:

    li:not(.inner:hover):hover
    
    即使您将其更改为有效的内容(根据):

    第一个选择器将始终匹配悬停时的
    li
    ,而第二个选择器将永远不会匹配任何内容。它将永远不会匹配您的
    div.inner
    ,因为您正在将
    :not()
    附加到
    li


    最后,如果要在
    .internal
    获得悬停时更改
    li
    ,则当前的CSS选择器不可能这样做。您需要JavaScript。

    您有一些代表性的HTML,我们可以试用吗?你能解释清楚你想做什么吗?我很困惑。。。你能准确地展示你想要做什么吗?我认为你应该用CSS来模拟悬停的相同效果,而不是使用
    :而不是
    。。。只需使用jQuery::parent选择器重新声明itUpdated with more informations。因此我无法判断子元素的悬停是否在:not中处于活动状态?您不能,因为
    :not()
    只查看您附加到的任何元素,而不查看其子元素。由于还没有父选择器,你现在不能用CSS来做。我不明白,如果你把鼠标放在屏幕上,这怎么能抵消li的悬停呢?
    ul li a{ color:black}
    ul li a:hover { color:red }
    ul li.active a:hover { color:black /*re use the same properties which is there in default style viz ul li a{} */}
    
    li:not(.inner:hover):hover
    
    li:not(.inner):hover, li:not(:hover):hover