如何在垫面板中对齐多个描述

时间:2018-08-28 21:39:03

标签: angular angular-material angular6

我正在尝试使说明在垫面板中看起来更加对齐。如果一个字段比另一个字段长,它将所有内容推向右侧。如何使描述保持一致?

<mat-accordion>
  <mat-expansion-panel [expanded]="allExpandState">
    <mat-expansion-panel-header>
      <mat-panel-title>
        Account #: {{accountNumber}}
      </mat-panel-title>
      <mat-panel-description>
        {{type}}
      </mat-panel-description>
      <mat-panel-description>
        {{date}}
      </mat-panel-description>
      <mat-panel-description>
        {{value}}
      </mat-panel-description>
    </mat-expansion-panel-header>
  </mat-expansion-panel>
  <!-- ... -->
</mat-accordion>

现在的样子:

Broken expansion panels

3 个答案:

答案 0 :(得分:0)

您可以只创建一个mat-panel-description,然后在其中创建一个表格以对齐您的值。

<mat-accordion>
  <mat-expansion-panel [expanded]="allExpandState">
    <mat-expansion-panel-header>
      <mat-panel-title>
        Account #: {{accountNumber}}
      </mat-panel-title>
      <mat-panel-description>
        <table>
          <tr>
            <td>Value</td>
            <td>Value</td>
            <td>Value</td>
          </tr>
          <tr>
            <td>Value</td>
            <td>Value</td>
            <td>Value</td>
          </tr>
          <tr>
            <td>Value</td>
            <td>Value</td>
            <td>Value</td>
          </tr>
        </table>
      </mat-panel-description>
    </mat-expansion-panel-header>
  </mat-expansion-panel>
  <!-- ... -->
</mat-accordion>

答案 1 :(得分:0)

如果接受,将 Ploppy 的回答标记为已回答。实现对齐的另一种方法是:

在你的组件或styles.css /scss中添加一个CSS规则

请注意,未来可能会弃用 ng-deep。

    ::ng-deep .mat-expansion-panel-header-description {
  position: absolute;
  left: 300px;
}

答案 2 :(得分:0)

另一种解决方案:

<mat-accordion>
    <ng-container *ngFor="let r of data">
        <mat-expansion-panel>
            <mat-expansion-panel-header>
                <mat-panel-title>
                    {{ r.title }})
                </mat-panel-title>
                <mat-panel-description>
                    {{ r.info }}
                    <mat-slide-toggle>Toggle</mat-slide-toggle>
                </mat-panel-description>
            </mat-expansion-panel-header>
            <h1>Details</h1>
            <p>...</p>
        </mat-expansion-panel>
    </ng-container>
</mat-accordion>

.mat-expansion-panel-header-description {
    justify-content: space-between;
    align-items: center;
    max-width: 50%;
}