Выравнивание ячеек выполняется по умолчанию через flexbox при использовании <mat-header-cell>
и <mat-cell>
, но не при использовании <th mat-header-cell>
и <td mat-cell>
.При использовании элементов таблицы выравнивание выполняется с помощью text-align
.Если вы постоянно используете flexbox, ячейки таблицы, использующие th
и td
, могут потерять выравнивание по вертикали с остальной частью таблицы.
Я обнаружил, что комбинация настроек text-align: right
и настройки justify-content: flex-end
работает лучше всего.Таким образом, элементы с display:table-cell
используют text-align
, а элементы с display:flex
используют justify-content
.
Например:
.header-align-right {
text-align: right;
justify-content: flex-end;
}
Чтобы отобразить стрелкуперед заголовком следует использовать атрибут arrowPosition
.
Кроме того, я бы предложил использовать класс автоматически добавляемых столбцов (.mat-column-
+ чувствительное к регистру значение matColumnDef
) вместо добавления class="header-align-right"
.Это выровняет верхние, нижние и нижние колонтитулы.Итак, вот что я бы предложил:
.mat-column-Number {
text-align: right;
justify-content: flex-end;
}
<ng-container matColumnDef="Number">
<th mat-header-cell *matHeaderCellDef mat-sort-header arrowPosition="before">Number</th>
<td mat-cell *matCellDef="let row">{{row.Number}}</td>
<td mat-footer-cell *matFooterCellDef></td>
</ng-conIainer>