我有可选的框(class="selectbox"),它们有自己的悬停行为,所以这些框中的任何链接文本都应该从一般的a:hover 效果中排除.我try 使用So上其他答案中建议的:not() css伪类,但无法正常工作.

<!-- Link within box, should not have hover effect -->
<a href="XXX">
  <div class="selectbox">
    <article class="media">
      <div>
        <p>
        Link within box
        </p>
      </div>
    </article>
  </div>
</a>

<!-- General link, should have hover effect -->
<a href="XXX">General link</a>

我try 过的css:

a:not(.selectbox):hover {
    text-shadow: 1px 0 0 currentColor;
}
a:not(a > .selectbox):hover {
    text-shadow: 1px 0 0 currentColor;
}

推荐答案

:not在这里是行不通的,因为你想知道它是否包含某些元素.你可以像下面这样使用:has,但浏览器的支持并不是最好的.

a:hover {
    text-shadow: 1px 0 0 currentColor;
}
a:has(.selectbox):hover{
  text-shadow: none;
}
<a href="XXX">
  <div class="selectbox">
    <article class="media">
      <div>
        <p>
        Link within box
        </p>
      </div>
    </article>
  </div>
</a>

<!-- General link, should have hover effect -->
<a href="XXX">General link</a>

或者对锚点内的内容使用较高specificity的 Select 符,如下所示:

a:hover {
    text-shadow: 1px 0 0 currentColor;
}
a > .selectbox {
    text-shadow: none;
}
<a href="XXX">
  <div class="selectbox">
    <article class="media">
      <div>
        <p>
        Link within box
        </p>
      </div>
    </article>
  </div>
</a>

<!-- General link, should have hover effect -->
<a href="XXX">General link</a>

Html相关问答推荐

弹性项在主轴方向溢出

如何防止下拉菜单内的Bootstrap列表行包装?

注册组件不显示当我导航到注册站点

在浮动元素旁边垂直居中

将网格包装在css中

如何最大限度地减少Cookie同意代码对性能的影响?

我怎样才能有一个div,在其中放置一个消息,打破和不go 的div?

如何使用CSS创建文件夹选项卡的形状?

HX-POST未使用正确的操作(路径)

使用不同字体对齐元素

Swift WkMessageHandler 消息不发送

如何在Go模板中传入途中创建的 map

网格中的图像zoom 不正确

当浏览器宽度减小时字体大小变得太大

MUI 日期 Select 器要包含的日期

将箭头图标添加到工具提示包装器时遇到问题

下划线在 Bootstrap 5 导航链接下无法正常工作

带圆角帽的 CSS 部分边框

修复 Vue 3 Component 中的 CSS 以显示后面的 Select 器样式而无需 !important

是否可以将文本添加到表格边框?