Как выровнять кнопку прямо в диалоговом угловом материале?

Я хочу, чтобы кнопка выравнивания в правом нижнем углу диалогового окна была моей HTML

<div mat-dialog-content>
  <p>What your favorite animal?</p>
  <mat-form-field>
    <input matInput [(ngModel)]="data.animal">
  </mat-form-field>
</div>
<div mat-dialog-actions>

  <button mat-button [mat-dialog-close]="data.animal" cdkFocusInitial>Ok</button>
</div>

демо

Ответы

Ответ 1

Обновленный ответ (по состоянию на 20 декабря 2018 года)

Я обнаружил, что атрибут align используется для добавления CSS-атрибутов flexbox к действиям диалога в файле SCSS компонента диалога:

(Выдержка из dialog.scss)

.mat-dialog-actions {
  // ...
  &[align='end'] {
    justify-content: flex-end;
  }

  &[align='center'] {
    justify-content: center;
  }
}

Вот строки исходного кода: Линии SCSS


Оригинальный ответ

Вы можете использовать HTML-атрибут [align]:

<div mat-dialog-content>
  <p>What your favorite animal?</p>
  <mat-form-field>
    <input matInput [(ngModel)]="data.animal">
  </mat-form-field>
</div>
<div mat-dialog-actions align="end">
  <button mat-button [mat-dialog-close]="data.animal" cdkFocusInitial>Ok</button>
</div>

Demo

Ответ 2

Поскольку атрибут align не поддерживается в HTML5, вы должны использовать этот CSS вместо этого:

.mat-dialog-actions {
    justify-content: flex-end;
}

Это то, что делается внутри Angular Material, когда вы помещаете align="end", вы можете проверить элемент, чтобы проверить это.

Ответ 3

Удалить

{display: flex} 

стиль для класса mat-dialog-actions

Ответ 4

Используйте встроенную панель инструментов, которая является частью материала.

<h4 mat-dialog-title>
        <mat-toolbar role="toolbar" class="task-header">
            <span> Edit Task</span>
            <span class="fx-spacer"></span>
            <button mat-icon-button (click)="close()">
                <mat-icon mat-list-icon>close</mat-icon>
            </button>
        </mat-toolbar>
    </h4>
    <div mat-dialog-content>
    Modal Content here
    </div>

Пользовательский CSS для заголовка

.task-header {
    background-color: transparent;
    padding: 0 5px;
    height: 20px;
}
.fx-spacer {
    flex: 1 1 auto;
}