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

ng-bootstrap accordion图标样式问题:聚焦时星星图标消失求助

解决方案:让Accordion旁的星星图标始终显示并保留原生Tooltip

问题分析

从你描述的现象来看,星星图标在Accordion失焦时显示、聚焦后消失,大概率是ngb-accordion在:focus/:focus-within状态下的默认样式影响了图标,或是图标被聚焦后的面板元素覆盖了。另外要确保原生title tooltip正常触发,还得保证图标元素能被鼠标识别到。

具体解决步骤

1. 提升星星图标的样式优先级与显示层级

修改CSS,增加更高优先级规则,确保图标在任何状态下都不会被隐藏,同时调整层级避免被覆盖:

.icon-star2.relevant-source {
  position: absolute;
  margin-left: -5em;
  /* 强制保持显示,覆盖默认隐藏样式 */
  opacity: 1 !important;
  display: inline-block !important;
  /* 提高层级,避免被聚焦后的面板元素遮挡 */
  z-index: 10;
  /* 增加内边距,让tooltip更容易被触发 */
  padding: 0.25em;
}

2. 覆盖Accordion聚焦状态的影响

针对ngb-accordion面板聚焦时的样式,专门保留星星图标的显示:

/* 确保Accordion或面板聚焦时,星星图标依然可见 */
ngb-accordion:focus-within .icon-star2.relevant-source,
ngb-panel:focus .icon-star2.relevant-source {
  opacity: 1;
  display: inline-block;
}

3. 优化Tooltip触发的交互性

原生title需要元素能被鼠标hover到,给图标加上交互相关的样式:

.icon-star2.relevant-source {
  /* 确保鼠标可以识别到这个元素,触发tooltip */
  pointer-events: auto;
  cursor: help; /* 可选,给用户提示这是可查看tooltip的元素 */
}

4. 模板代码微调(可选)

给图标包裹一个容器,进一步隔离面板聚焦样式的影响:

<ngb-accordion class="accordion accordion-alternate">
  <ngb-panel class="source-accordion" *ngFor="let item of yourDataSource">
    <ng-template ngbPanelTitle>
      <span class="star-icon-wrapper">
        <i 
          *ngIf="item.relevantNum > 0" 
          class="icon-star2 relevant-source" 
          title="This source contains {{item.relevantNum}} of the top 10 most relevant documents."
        ></i>
      </span>
      <span class="source-link source-link-text">{{item.sourceName}}</span>
      <span class="float-right source-link">{{item.relevantNum | number:0 }}</span>
    </ng-template>
    <ng-template ngbPanelContent>
      List of documents
    </ng-template>
  </ngb-panel>
</ngb-accordion>

额外检查点

可以通过浏览器开发者工具的元素面板,查看Accordion聚焦状态下,星星图标的样式变化,确认是否有其他隐藏规则(比如display: none)在生效,针对性覆盖即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:40:34