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

如何在锚标签与div用display:contents时实现SVG对象可点击?

解决display:contents下嵌套SVG的锚点可点击问题

你的核心问题出在.svg-container的pointer-events: none设置上——这个属性会直接阻止SVG容器响应任何点击事件,而设置了display: contents的<a>和.svg-wrapper本身不会生成布局盒模型,没法直接承接点击事件,自然就触发不了锚点跳转。

只需要修改CSS,移除.svg-container的pointer-events: none即可:

.component-content{
      display: flex;
      overflow: hidden;
}
a{
      display: contents;
}
.svg-wrapper{
  display: contents;
}
.svg-container{
    height: auto;
    align-self: start;
    padding: 0 19px 0 0;
    max-width: 50%;
    /* 移除pointer-events: none,默认pointer-events为auto,可正常响应点击 */
}

原理说明:

display: contents的元素不会渲染自身的盒模型,但依然会参与事件冒泡流程。当内部的SVG容器允许接收指针事件后,点击SVG时,事件会冒泡到上层的<a>标签,从而触发锚点的跳转行为,完全满足你保留display: contents的需求。

内容的提问来源于stack exchange,提问作者Ashu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 06:04:58