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

如何定制Angular Material Tab样式:选中蓝底、其余白底带连线

实现自定义Angular Material Tab样式

要实现选中标签蓝色背景、其余标签白色背景且标签间带连线的效果,你可以通过样式穿透修改Angular Material的默认样式,具体步骤如下:

1. 保留现有组件结构

你的基础代码可以保持不变:

<mat-tab-group>
  <mat-tab [label]="tab" *ngFor="let tab of lotsOfTabs">Content</mat-tab>
</mat-tab-group>

2. 添加自定义样式

在组件的CSS/SCSS文件中添加以下样式(使用::ng-deep穿透Angular的视图封装,确保样式生效):

::ng-deep {
  /* 移除标签栏默认的底部边框和背景 */
  .mat-tab-group.mat-primary .mat-tab-label-container {
    border-bottom: none;
    background-color: #fff;
  }

  /* 设置所有标签的默认样式:白色背景、文字颜色、内边距,以及标签间的竖线连线 */
  .mat-tab-label {
    background-color: #ffffff;
    color: #333333;
    padding: 0 24px;
    position: relative;

    /* 给除了最后一个标签之外的所有标签添加右侧竖线作为连线 */
    &:not(:last-child)::after {
      content: '';
      position: absolute;
      right: 0;
      top: 10px;
      bottom: 10px;
      width: 1px;
      background-color: #e0e0e0;
    }
  }

  /* 设置选中标签的样式:蓝色背景、白色文字 */
  .mat-tab-label.mat-tab-label-active {
    background-color: #1976d2; /* 可自定义为你需要的蓝色 */
    color: #ffffff;
  }

  /* 移除选中标签默认的下划线指示器 */
  .mat-tab-group.mat-primary .mat-ink-bar {
    display: none;
  }
}

关键说明

  • ::ng-deep:用于突破Angular的组件视图封装,让样式能作用到Angular Material的内部组件元素。如果你的项目禁用了::ng-deep,也可以将这些样式放到全局样式文件(如styles.scss)中。
  • 标签间连线:通过伪元素::after给非最后一个标签添加右侧竖线,模拟标签间的分隔线,可自行调整竖线的颜色、高度。
  • 选中状态样式:直接覆盖.mat-tab-label-active的背景色和文字色,同时移除默认的下划线指示器(.mat-ink-bar),避免与自定义背景样式冲突。

你可以根据设计需求调整蓝色背景色、连线颜色以及内边距等参数,匹配目标样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:22:43