Как центрировать мат-карту в угловых материалах?

У меня есть карточка входа, которую я разработал с использованием материалов angular, и всякий раз, когда я запускаю ее на странице, содержимое прилипает к левой части страницы.

Я пробовал использовать flex и layout-align = "center center", но мне все еще не удается вывести карту в центр страницы.

Что я делаю неправильно ?

Вот мой html:

<mat-card class = "example-card" layout = "row" layout-align = "center center">
  <mat-card-header>
    <div class = "login-box-header" layout = "row" layout-align = "center center">
        <img src = "https://image.ibb.co/hDqa3p/codershood.png">
    </div>
  </mat-card-header>
  <mat-card-content>
    <form class = "example-form">
      <table class = "example-full-width" cellspacing = "0">
        <tr>
          <td>
            <mat-form-field class = "example-full-width">
            <input matInput placeholder = "Username" [(ngModel)] = "username" name = "username" required>
            </mat-form-field>
          </td>
        </tr>
        <tr>
        <td><mat-form-field class = "example-full-width">
          <input matInput placeholder = "Password" [(ngModel)] = "password"type = "password" name = "password" required>
        </mat-form-field></td>
      </tr></table>
    </form>
    <mat-spinner [style.display] = "showSpinner ? 'block' : 'none'"></mat-spinner>
  </mat-card-content>
  <mat-card-actions>
    <button mat-raised-button (click) = "login()" color = "primary">Login</button>
  </mat-card-actions>
</mat-card>

и вот контент, который все еще не центрирован:

Как центрировать мат-карту в угловых материалах?

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
16
0
47 185
5

Ответы 5

Пожалуйста, попробуйте ниже методы css.

  1. первый способ.
.example-card{
    display:inline-block;
}

Затем создайте один div обложки для "mat-card". Дайте имя класса для div обложки, например "mat-card-cvr".

.mat-card-cvr{
   width: 100%;
   text-align:center;
}

2. второй способ.

.example-card{
    margin: 0 auto;
    width: 40%;
}
  1. Третий способ.
.example-card{
    margin: 0 auto;
    width: 40%;
    display: inline-block;
    vertical-align: middle;
}

Затем создайте один div обложки для "mat-card". Дайте имя класса для div обложки, например "mat-card-cvr".

.mat-card-cvr{
    width: 100%;
    height: 500px;
    line-height: 500px;
    text-align: center;
}
  1. Четвертый способ.
.mat-card-cvr{
    top:50%;
    width:100%;
    text-align:center;
    position:fixed;
}
    
.example-card{
    margin:0 auto;
    display:inline-block;
}

это только центрируйте его по горизонтали, а не по вертикали

Chief Madog 14.10.2018 08:59

Вы не упомянули о вертикальном выравнивании в своем вопросе?

stalinrajindian 14.10.2018 09:11

Не могли бы вы поделиться своей ссылкой. Я буду стараться изо всех сил.

stalinrajindian 14.10.2018 09:21

я говорю о центре на странице

Chief Madog 14.10.2018 10:04

попробуйте четвертый способ.

stalinrajindian 14.10.2018 11:23

Исправлено с помощью очень простого Flex

.main-div{
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

и оборачиваем все классом

<!-- Classes main-div and example-card are catagorized in .css file -->
<div class = "main-div">

<mat-card class = "example-card">
  <mat-card-header>
    <div class = "login-box-header">
        <!-- Src image is temporary hosted in image.ibb-->
        <img src = "https://image.ibb.co/hDqa3p/codershood.png">
    </div>
  </mat-card-header>
  <mat-card-content>
    <form class = "example-form">
      <table class = "example-full-width" cellspacing = "0">
        <tr>
          <td>
            <mat-form-field class = "example-full-width">
            <input matInput placeholder = "Username" [(ngModel)] = "username" name = "username" required>
            </mat-form-field>
          </td>
        </tr>
        <tr>
        <td><mat-form-field class = "example-full-width">
          <input matInput placeholder = "Password" [(ngModel)] = "password"type = "password" name = "password" required>
        </mat-form-field></td>
      </tr></table>
    </form>
    <mat-spinner [style.display] = "showSpinner ? 'block' : 'none'"></mat-spinner>
  </mat-card-content>
  <mat-card-actions>
    <button mat-raised-button (click) = "login()" color = "primary">Login</button>
  </mat-card-actions>
</mat-card>

Это произвело на меня чудо:

.btn-center{
   margin: 0 auto;
   display: flex;
}

Материал предоставлен mat-grid-list для расположения строк и столбцов. используйте это так:

<mat-grid-list cols = "1" rows = "1" rowHeight = "2:1">
    <mat-grid-tile>
        <mat-card>
        Your form here
        </mat-card>
    </mat-grid-tile>
</mat-grid-list>

См. Документы для получения дополнительной информации https://material.angular.io/components/grid-list/overview

Я попробовал ответ OP, но мне тоже нужно контролировать ширину, поэтому пришлось использовать div внутри div, а затем мат-карту

.centering-div{
  display: flex;
  justify-content: center;
}

.inner-container {
  width: 80%;
  max-width: 100%;
  overflow: auto;
}
.my-card {
  max-width: 100%;
  color: rgb(63, 81, 181);
}

Другие вопросы по теме