带有中心图标的Angular Material mat-nav-list多行

时间:2018-07-23 17:00:01

标签: html css angular angular-material angular6

我正在努力尝试用两个基于行的mat-list-items设置mat-nav-list。第一行应该是水平居中的图像,第二行应该是标题文本也居中的图像。我都显示了,但是img / icon没有居中。 :/

以下是一些代码:

<mat-nav-list class="list-container">
    <a mat-list-item routerLink="/somewhere" routerLinkActive="active-link">
      <span matLine class="icn_log"></span>
      <span matLine>Centered Text</span>
    </a> 
</mat-nav-list>

我也使用了一些样式,更多地用于填充和添加边框。但是,如何使带有图标的第一个跨度也能居中放置命令呢?:

.list-container {
   width: 100%;
   padding-top: 1px;
   border-right: 1px solid;
   border-color: #ddd;
   text-align: center;
}

.list-container .mat-list-item {
   border: 1px solid;
   border-right: 0px;
   border-color: #ddd;
   margin-top: -1px;
   height: 80px;  
}

.list-container .mat-list-item .mat-line {
   padding-top: 5px;
   padding-bottom: 5px;
}

.icn_log {
   height: 32px;
   width: 32px;
   background-repeat: no-repeat;
   background-image: url("assets/img/log.png");
   background-position: 0;
}

要播放的一些代码:https://stackblitz.com/edit/angular-94jjyp

4 个答案:

答案 0 :(得分:0)

编辑-

尝试将0的背景位置从center更改为icn_log,将width的背景位置更改为100%

.icn_log {
    width: 100%;
    background-position: center;
}

答案 1 :(得分:0)

尝试像这样使用mat-icon指令:

<mat-list>
    <a mat-list-item>
        <mat-icon></mat-icon>
        <span matLine>Centered Text</span>
    </a>
</mat-list>

mat-icon中,您可以使用https://material.io/tools/icons。如果您不熟悉实质性图标,则可以遵循以下指南:https://google.github.io/material-design-icons/

答案 2 :(得分:0)

暂时有一个解决方法,但它将被弃用,详情请见此处

https://angular.io/guide/component-styles#deprecated-deep--and-ng-deep

 :host ::ng-deep .mat-list-item-content {
  flex-direction: column !important;
}

答案 3 :(得分:-1)

尝试:

<mat-nav-list class="list-container">
<a mat-list-item routerLink="/somewhere" routerLinkActive="active-link">
  <center>
   <span matLine class="icn_log"></span>
   <span matLine>Centered Text</span>
  </center>
</a>