You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何快速为锚点标签下的多个子标签添加:hover和:active样式?

解决锚点标签下粗体文本统一样式的简化写法

首先纠正你之前的语法错误:你写的a > h1,h2,h3,h4,h5,h6,strong,b,d1,d2,d3,d4,d5,d6中,逗号分隔的是独立选择器,所以h2、h3等实际上是全局选择器(不是a > h2),这就是为什么只有a > h1生效。

下面是几种快速实现的方法:

  • 方法一:使用CSS原生:is()选择器(推荐)
    现代浏览器都支持这个选择器,它可以帮你把多个子元素选择器打包,只需要写一次a >前缀,后续加伪类也不用重复编写所有选择器:

    /* 基础样式 */
    a > :is(h1, h2, h3, h4, h5, h6, strong, b, d1, d2, d3, d4, d5, d6) {
      font-weight: var(--medium);
    }
    
    /* hover状态样式 */
    a > :is(h1, h2, h3, h4, h5, h6, strong, b, d1, d2, d3, d4, d5, d6):hover {
      /* 自定义hover样式,比如 color: #f00; */
    }
    
    /* active状态样式 */
    a > :is(h1, h2, h3, h4, h5, h6, strong, b, d1, d2, d3, d4, d5, d6):active {
      /* 自定义active样式,比如 opacity: 0.8; */
    }
    
  • 方法二:用CSS预处理器简化(如Sass/LESS)
    如果你项目中使用预处理器,可以先定义一个变量存储所有目标元素,后续直接复用,编译后会自动展开成完整选择器:

    // 定义目标元素列表
    $target-elements: h1, h2, h3, h4, h5, h6, strong, b, d1, d2, d3, d4, d5, d6;
    
    // 基础样式
    a > #{$target-elements} {
      font-weight: var(--medium);
    }
    
    // hover状态
    a > #{$target-elements}:hover {
      /* 你的hover样式 */
    }
    
    // active状态
    a > #{$target-elements}:active {
      /* 你的active样式 */
    }
    
  • 方法三:兼容老旧浏览器的原生写法
    如果你必须兼容IE这类不支持:is()的浏览器,可以把选择器列表统一写一次,再通过复制粘贴复用(虽然不如前两种便捷,但比手动逐个编写高效):

    /* 基础样式 */
    a > h1, a > h2, a > h3, a > h4, a > h5, a > h6,
    a > strong, a > b, a > d1, a > d2, a > d3, a > d4, a > d5, a > d6 {
      font-weight: var(--medium);
    }
    
    /* hover状态 */
    a > h1:hover, a > h2:hover, a > h3:hover, a > h4:hover, a > h5:hover, a > h6:hover,
    a > strong:hover, a > b:hover, a > d1:hover, a > d2:hover, a > d3:hover, a > d4:hover, a > d5:hover, a > d6:hover {
      /* 你的hover样式 */
    }
    

内容的提问来源于stack exchange,提问作者Mohammed H.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 05:55:09