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

如何修改Angular Material Tree激活与聚焦状态下的字体颜色

Angular Material Tree 激活/聚焦状态字体颜色修改方案
  • 优先推荐给样式加上你的自定义tree类.example-tree提升选择器权重,避免被Material默认样式覆盖,两种修改场景如下:

1. 全局样式文件(styles.css/styles.scss)添加

直接把以下代码加到全局样式文件中即可生效:

/* 基础字体颜色你已经配置过,这里只加状态样式 */
/* 聚焦状态字体颜色 */
.example-tree .mat-tree-node:focus,
.example-tree .mat-tree-node.cdk-focused {
  color: #自定义聚焦颜色值; /* 例:#1890ff */
  outline: none; /* 可选:移除默认的聚焦外边框 */
}

/* 激活/选中状态字体颜色 */
.example-tree .mat-tree-node.active,
.example-tree .mat-tree-node.mat-tree-node-selected {
  color: #自定义激活颜色值; /* 例:#165DFF */
}

2. 组件私有样式文件添加

如果不需要全局生效,只想在当前使用Tree的组件内生效,需要用::ng-deep穿透Angular视图封装,配合:host避免全局污染:

:host ::ng-deep .example-tree {
  /* 聚焦状态字体颜色 */
  .mat-tree-node:focus,
  .mat-tree-node.cdk-focused {
    color: #自定义聚焦颜色值;
    outline: none;
  }

  /* 激活/选中状态字体颜色 */
  .mat-tree-node.active,
  .mat-tree-node.mat-tree-node-selected {
    color: #自定义激活颜色值;
  }
}
  • 补充说明:如果你的激活状态是自行控制的,需要给.mat-tree-node节点绑定激活类,示例如下:
<div class="mat-tree-node" [class.active]="selectedNode === node">
  {{node.name}}
</div>

其中selectedNode是你组件中存储当前选中节点的变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 12:15:04