中心对齐md-tab-group标题标签

Jac*_*cob 11 angular-material2 angular

我想将显示标签的标签栏居中,以便我可以在左侧添加一个连接到标签的侧栏.这是我的代码:

 <div class="flex-container">

  <div class="flex-item1">
    <md-tab-group>
    <md-tab label="PERSONAL">Personal content</md-tab>
      <md-tab label="SOCIAL">Social content</md-tab>

      <md-tab label="BUSINESS">Business content

        <b-app></b-app>
      </md-tab>
    </md-tab-group>
  </div>


<div class="flex-item2">
  <div class="item item-5" fxLayout="column">
    <md-input-container class="search-area">
    <input mdInput placeholder="search" >
    <!--md-icon svgIcon="thumbs-up"></md-icon-->
    </md-input-container>

  </div>

</div>
Run Code Online (Sandbox Code Playgroud)

Fai*_*sal 12

方法1使用ViewEncapsulation(推荐)

:: ng-deep在这种情况下效果很好,但它可能会在未来贬值.建议的方法是使用ViewEncapsulation.

在您的组件中,添加以下封装:

import { ViewEncapsulation } from '@angular/core';
@Component({
    ....
    encapsulation: ViewEncapsulation.None
})
Run Code Online (Sandbox Code Playgroud)

在component.css中添加以下内容:

.mat-tab-labels{
    justify-content: center; /* align items in Main Axis */
}
Run Code Online (Sandbox Code Playgroud)

链接到Plunker演示ViewEncapsulation.None


方法2使用:: ng-deep

在component.css中添加以下内容:

::ng-deep .mat-tab-labels{
    justify-content: center; /* align items in Main Axis */
}
Run Code Online (Sandbox Code Playgroud)

这是PLUNKER DEMO的链接.

  • 我一直使用ng-deep,但我从不喜欢这个想法.我很高兴我找到了你的答案,因为我不知道封装装饰器. (2认同)