Angular 6 - of-bootstrap - 样式选项卡

Angular 6 - ng-bootstrap - Style Tabs

我有这个 bootstrap 标签

<ngb-tabset>
    <ngb-tab title="Tab 1">
        <ng-template ngbTabContent>
            Tab 1
        </ng-template>
    </ngb-tab>
    <ngb-tab title="Tab 2">
        <ng-template ngbTabContent>
            Tab 2
        </ng-template>
    </ngb-tab>
</ngb-tabset>

选项卡上的文字颜色为蓝色。我知道如果我创建全局样式我可以覆盖默认值。但是我想从父组件设置标签的样式

我知道我可以设置子组件的样式,但在这种情况下不起作用 ()。有什么建议吗?

styles: [
`
 :host { color: red; }

 :host ::ng-deep parent {
   color:blue;
 }
 :host ::ng-deep child{
   color:orange;
 }
 :host ::ng-deep child.class1 {
   color:yellow;
 }
 :host ::ng-deep child.class2{
   color:pink;
 }
`
],

对于以下使用 ng-bootstrap 个标签的模板:

<ngb-tabset class="tabset1">
    <ngb-tab title="Tab 1">
        <ng-template ngbTabContent>
            Tab 1
        </ng-template>
    </ngb-tab>
    <ngb-tab title="Tab 2">
        <ng-template ngbTabContent>
            Tab 2
        </ng-template>
    </ngb-tab>
</ngb-tabset>

您可以使用这些 CSS 规则覆盖默认选项卡标题样式:

:host ::ng-deep .tabset1 a.nav-link {
  color: green;
}

:host ::ng-deep .tabset1 a.nav-link.active {
  color: red;
  font-weight: bold;
}

有关演示,请参阅 this stackblitz

注意:如果未在 ngb-tabset 元素上设置属性 class="tabset1",则应从 CSS 样式中删除选择器 .tabset1