角垫形场中心对齐

Cpt*_*mer 6 angular-material angular

您可以在任何地方找到如何将文本居中,甚至占位符和标签以及所有内容,但我无法将整个表单域居中,而且它看起来很丑陋。

<div class="mat-app-background basic-container">
  <div layout-gt-sm="column" style="min-width: 350px; max-width: 450px; margin:auto">
    <mat-card flex-gt-sm class="push">
      <div style="text-align:center;">
        <mat-card-title>Login</mat-card-title>
      </div>
      <div style="text-align:center;">
      <mat-card-content>
        <form [formGroup]="loginForm" class="form" (ngSubmit)="login()">
          <table cellspacing="0">
            <tr>
              <td>
                <mat-form-field>
                    <div style="text-align:center;">
                  <input matInput placeholder="{{ 'LOGIN.USERNAME' | translate }}" name="username"
                    formControlName="username" type="name" />
                  <mat-error *ngIf="formErrors.username" class="form__error">{{ formErrors.username }} </mat-error>
                </div>
                </mat-form-field>
              </td>
            </tr>
Run Code Online (Sandbox Code Playgroud)

我希望这段代码需要。如果没有,我将发布其余的 html。但这只是使领域居中。这里没有使用 CSS。

wen*_*jun 10

我建议你使用flexbox

我也不确定为什么需要将它放在 a 中,但我已将其删除以简化演示。

<div class="parent">
  <mat-form-field>
    <div style="text-align:center;">
      <input matInput placeholder="{{ 'LOGIN.USERNAME' | translate }}" name="username" formControlName="username" type="name" />
      <mat-error *ngIf="formErrors.username" class="form__error">{{ formErrors.username }} </mat-error>
    </div>
  </mat-form-field>
</div>
Run Code Online (Sandbox Code Playgroud)

在你的 CSS 上,

.parent {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
}
Run Code Online (Sandbox Code Playgroud)

属性justify-contentalign-items的值center将分别使 flex 子项沿线和横轴居中,从而将它们放置在页面的中心。flex-direction值为的属性column将子项(表单字段)从上到下对齐。