Я использую угловой 4 и использую угловой материал.

<md-tab-group [disableRipple]=true>
    <md-tab label="Tab 1"></md-tab>
    <md-tab label="Tab 2"></md-tab>
</md-tab-group>

Как я могу полностью настроить цвет фона, когда (не выбран / выбран), цвет текста и т. Д. Я уже пробовал использовать псевдо-классы ... но все еще безрезультатно. --- Я успешно установил font-size, но цвет текста при настройке немного нервный. Пожалуйста помоги.

< Сильный > Update :

Я пытался изменить фон на прозрачный при выборе ... пытался переопределить цвет, когда ссылка не выбрана на вкладке и т. Д., Но по-прежнему не работает.

/* Styles go here */

  .mat-tab-label{
    color:white;
    min-width: 25px !important;
    padding: 5px;
       background-color:transparent;
        color:white;
        font-weight: 700;
  }

  /deep/ .mat-tab-label{
    min-width: 25px !important;
    padding: 5px;
       background-color:transparent;
        color:white;
        font-weight: 700;
}

.md-tab.ng-scope.ng-isolate-scope.md-ink-ripple.md-active{
      background-color:transparent;
      color:white;
      font-weight: 700;
  }

.md-tab.ng-scope.ng-isolate-scope.md-ink-ripple{
    background-color:transparent;
    color:white;
    font-weight: 700;
}



.mat-tab-label:active{
    min-width: 25px !important;
    padding: 5px;
       background-color:transparent;
        color:white;
        font-weight: 700;
}

.mat-tab-label:selected{
    min-width: 25px !important;
    padding: 5px;
       background-color:transparent;
        color:white;
        font-weight: 700;
}
26
Desu 29 Авг 2017 в 16:53

5 ответов

Лучший ответ

В своем компоненте установите ViewEncapsulation значение None и добавьте стили в свой component.css. файл.

Изменения в коде Typescript:

import {Component, ViewEncapsulation} from '@angular/core';

@Component({
  ....
  encapsulation: ViewEncapsulation.None
})

Компонент CSS:

/* Styles for tab labels */
.mat-tab-label {
    min-width: 25px !important;
    padding: 5px;
    background-color: transparent;
    color: red;
    font-weight: 700;
}

/* Styles for the active tab label */
.mat-tab-label.mat-tab-label-active {
    min-width: 25px !important;
    padding: 5px;
    background-color: transparent;
    color: red;
    font-weight: 700;
}

/* Styles for the ink bar */
.mat-ink-bar {
    background-color: green;
}

демонстрация

64
Edric 18 Июл 2018 в 10:05

Последнее решение: -

1) Переопределить в styles.css 2) Использовать селектор компонента, где существует эта вкладка материала

Styles.css

  app-child .mat-tab-label.mat-tab-label-active {
    padding: 0px 15px ;
  justify-content: flex-start;
  }

  app-child .mat-tab-label{
    padding: 0px 15px ;
  justify-content: flex-start;
  }

.mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar{
    background:#6168e7;
  }
3
MahiMan 8 Янв 2019 в 18:32

Мне потребовалось много времени, чтобы понять, как изменить цвет фона вкладок, переопределив дизайн материала. Я не знаю, где поделиться своим конечным результатом, так что здесь идет:

Для файла .ts:

@Component({
  selector: 'app-tabs',
  templateUrl: './tabs.component.html',
  styleUrls: ['./tabs.component.css'],
  encapsulation: ViewEncapsulation.None
})

Для файла CSS:

.mat-tab-labels, .mat-tab-label, .mat-tab-link {
  color: white;
  font-size: 16px;
  background-color: #804A71;
}

.mat-tab-group.mat-primary .mat-ink-bar, .mat-tab-nav-bar.mat-primary .mat-ink-bar{
  background: white;
  height: 5px; 
}

Так что это и цвет фона, цвет и размер текста (метки) и панель вкладок под текстом. Наконец-то это сработало, когда я использовал .mat-tab-label и .mat-tab-label.

0
rikkep 11 Дек 2018 в 09:54

Угловая версия 6

Новый дизайн для пользовательской вкладки

< Сильный > HTML

<mat-tab-group [disableRipple]="true" mat-align-tabs="center">
     <md-tab label="Tab 1"></md-tab>
     <md-tab label="Tab 2"></md-tab>
</md-tab-group>

< Сильный > СКС

/deep/ .mat-tab-labels {
  min-width: auto !important;
  div {
    border: 1px solid #fff;
    background-color: #404040;
      &.mat-tab-label-active {
        background-color: #3aafa9;
        .mat-tab-label-content {
          border: none;
          background-color: #3aafa9;
          }
      }
      .mat-tab-label-content {
        border: none;
        color: #fff !important;
        }
    }
 }

 /deep/ .mat-tab-group{
  &.mat-primary {
    .mat-ink-bar {
      background-color: transparent;
    }
  }
 }

 /deep/ .mat-tab-body-wrapper{
   min-height: 550px
 }

 /deep/ .mat-tab-label-container {
   flex-grow: 0 !important;
 }

/deep/ .mat-tab-label{
  opacity: 1 !important;
 }
1
Parth kharecha 5 Сен 2019 в 13:13

Обновить

Чтобы настроить фон вкладки и полосу рукописного ввода, вы можете определить свой собственный theme, затем используйте параметры темы в группе вкладок:

<div class="my-theme">
    <mat-tab-group [backgroundColor]="'primary'" [color]="'warn'">
        <mat-tab label="First"> Content 1 </mat-tab>
        <mat-tab label="Second"> Content 2 </mat-tab>
        <mat-tab label="Third"> Content 3 </mat-tab>
    </mat-tab-group>
</div>

Вот пример на StackBlitz.

Старый ответ с :: ng-deep

Если вы не хотите прикасаться к ViewEncapsulation, используйте вместо этого :: ng-deep с селектором классов (проверьте с помощью инструмента разработки браузера).

Например (Угловой 5, Материал 2):

/* active tab */
::ng-deep .mat-tab-list .mat-tab-labels .mat-tab-label-active {
color:red;
background-color: green;
}

/* ink bar */
::ng-deep .mat-ink-bar {
background-color: var(--primary-color,#1F89CE) !important;
}
21
Quan VO 13 Окт 2019 в 15:20