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

如何在Angular Material Tooltip中显示上标字符?

解决MatTooltip中无法显示HTML上标的问题

核心原因

MatTooltip默认会转义所有HTML标签,所以<sup>a</sup>会被当作纯文本输出,无法解析为上标格式。

解决方案

方法1:使用DomSanitizer处理HTML内容(推荐)

  1. 在组件中引入DomSanitizer和SafeHtml:
import { Component } from '@angular/core';
import { DomSanitizer, SafeHtml } from '@angular/platform-browser';

@Component({
  selector: 'app-your-component',
  templateUrl: './your-component.component.html',
  styleUrls: ['./your-component.component.css']
})
export class YourComponent {
  tooltipContent: SafeHtml;

  constructor(private sanitizer: DomSanitizer) {
    this.tooltipContent = this.sanitizer.bypassSecurityTrustHtml(
      'Treatment-Emergent Adverse Events <sup>a</sup> Terms Suggestive of Abuse Potential Leading to Study or Study Drug Discontinuation by Decreasing Frequency Safety Analysis Set'
    );
  }
}
  1. 在模板中绑定处理后的安全HTML:
<button [matTooltip]="tooltipContent" matTooltipClass="custom-tooltip">
  悬停查看提示
</button>
  1. 可选:添加CSS确保上标样式生效(部分场景下需要):
.custom-tooltip sup {
  font-size: 0.7em;
  vertical-align: super;
}

方法2:使用自定义Tooltip模板

如果需要更复杂的HTML结构,可直接用模板定义Tooltip内容:

<ng-template #tooltipTemplate>
  Treatment-Emergent Adverse Events <sup>a</sup> Terms Suggestive of Abuse Potential Leading to Study or Study Drug Discontinuation by Decreasing Frequency Safety Analysis Set
</ng-template>

<button [matTooltip]="''" [matTooltipTemplate]="tooltipTemplate">
  悬停查看提示
</button>

注:该方式需确保Angular Material版本支持matTooltipTemplate属性(多数新版本均支持)。

关键说明

  • 直接绑定HTML字符串到matTooltip会被转义,必须通过安全处理或模板方式让Angular解析HTML标签。
  • 使用DomSanitizer时,务必确保传入的HTML内容可信,避免XSS风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:10:36