如何在标签系统中创建动态下划线?

How to create a dynamic underline in a tab system?

我有一个动态选项卡系统,由于设计原因,每次选项卡处于活动状态时,它的文本和下面的一行都会变为蓝色。 问题是我需要这条线以灰色占据屏幕的整个宽度,并且出现蓝线表示活动选项卡就在同一条灰线上。 这是我的 html

          <div class="tabs d-flex flex-row">
      <div *ngFor='let category of this.market; let i = index'>
          <h2 (click)="selectedTab = i" [ngStyle]="selectedTab === i && {'border-bottom':'4px solid #0E5FA4', 'color':'#0E5FA4'}">{{category.name}}</h2>
      </div>
    </div>     


这是我的 css 我创建灰线的地方

.tabs {
  border-bottom: 4px solid #DCE0E6;
  margin-bottom: 20px;
}

正如我现在看到的那样,蓝线下方有一条灰线,表示活动文本。 我需要创建的是在活动选项卡文本下方具有蓝色拉伸的灰线效果。 这是一个 stackblitz link https://angular-ivy-er17vx.stackblitz.io。 知道如何实现吗?

请试试这个css:

p {
  font-family: Lato;
}

.tabs {
  display: flex;
  height: 80px;
  border-bottom: 4px solid #DCE0E6;
  margin-bottom: 20px;
}
.tabs > div > h2 {
  margin:0;
  padding: 20px 4px 10px 4px;
  height: 50px;
}

stachblitz

更可靠的解决方案是使用 angular material tabs