角材料2表头中心对齐

Yon*_*ong 27 angular-material angular-material2 angular

如果将md-sort-header添加到md-table中的md-header-cell中,则它始终是左对齐的.如何对标题单元格进行居中对齐,例如"名称"?

<md-header-cell *cdkHeaderCellDef md-sort-header style="text-align:center"> 
      Name 
</md-header-cell>
Run Code Online (Sandbox Code Playgroud)

plnkr

Veg*_*ega 44

更新Angular Material 5.xx,无需ng-deep:

  mat-header-cell {
   display:flex;
   justify-content:flex-end;
  }
Run Code Online (Sandbox Code Playgroud)

DEMO


md-header-cell得到'翻译'到class ="mat-sort-header-container"的容器.使用它,您可以设置其样式ng-deep.使用flexbox将其内容居中.将以下内容放在组件样式表中:

::ng-deep .mat-sort-header-container {
  display:flex;
  justify-content:center;
}
Run Code Online (Sandbox Code Playgroud)

DEMO

  • 谢谢你的回答,不过我确实必须在 Angular 7 中使用 ng-deep 示例。 (2认同)

Fai*_*sal 9

接受的答案是正确的.但是,::ng-deep折旧并且将来可能会被删除(官方文档).

不推荐使用阴影穿透后代组合器,并且正在从主要浏览器和工具中删除支持.因此,我们计划放弃Angular中的支持(对于/ deep /,>>>和:: ng-deep的所有3个).在此之前:: ng-deep应该是首选,以便与工具更广泛地兼容.

正确的方法是使用ViewEncapsulation.在component.ts中,添加以下内容:

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

@Component({
    ....
    encapsulation: ViewEncapsulation.None
})
Run Code Online (Sandbox Code Playgroud)

并覆盖component.css文件中的类:

.mat-sort-header-container {
  display:flex;
  justify-content:center;
}
Run Code Online (Sandbox Code Playgroud)

  • 请阅读文档:`不推荐使用阴影穿透后代组合器,并且正在从主要浏览器和工具中删除支持.因此,我们计划放弃Angular中的支持(对于/ deep /,>>>和:: ng-deep的所有3个) (3认同)
  • 谢谢你的解决方案!我想补充一点,如果你想只集中一个表头,那么你可以创建自己的自定义类,其名称如`mat-sort-header-container-centered`与上面列出的css并将其分配给你的单元格,就像这样`<md-header-cell*cdkHeaderCellDef md-sort-header class ="mat-sort-header-container-centered">` (2认同)

day*_*luv 8

.mat-header-cell {    text-align: center;    }
Run Code Online (Sandbox Code Playgroud)