Как выровнять h2 внутри вложенного div?

#html #css #vertical-alignment

#HTML #css #выравнивание по вертикали

Вопрос:

Я пытаюсь выровнять текст внутри моего элемента h2. Я бы хотел, чтобы он был центрирован вертикально внутри div. Я работаю в .NET MVC

Мой html: (это единственная часть, которая доставляет мне проблемы), в частности:

 .banner-side-container {
  height: 240px;
  width: 180px;
  vertical-align: middle;
}

.banner-side-container h2 {
  margin: 0;
  padding: 0;
  text-align: center;
}

.view-teams-banner {
  margin-top: 10px;
  height: 110px;
  width: 180px;
  background-color: aqua;
  border-radius: 20px;
}

.view-matches-banner {
  margin-top: 10px;
  height: 110px;
  width: 180px;
  background-color: darkorchid;
  border-radius: 20px;
}  
 <td>
  <div class="banner-side-container">
    <div class="view-teams-banner">
      <h2>View Teams</h2>
    </div>
    <div class="view-matches-banner">
      <h2>View Matches</h2>
    </div>
  </div>
</td>  

Я пытался добавить vertical-align: middle; ко всем 4 селекторам, но безуспешно.
Дополнительная информация: функция text-align: center; работала отлично.

Комментарии:

1. Здесь нет ничего общего с C #. Удален тег

2. один из способов центрирования — с помощью flex box, добавить display: flex; align-items: center; justify-content: center; к .view-teams-banner

Ответ №1:

Вы можете использовать flex и добавить следующие настройки к трем элементам, обертывая h2 s и их родительские элементы следующим образом:

 display: flex;
flex-direction: column;
justify-content: center;
  

 .banner-side-container {
  height: 240px;
  width: 180px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.banner-side-container h2 {
  margin: 0;
  padding: 0;
  text-align: center;
}

.view-teams-banner {
  margin-top: 10px;
  height: 110px;
  width: 180px;
  background-color: aqua;
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.view-matches-banner {
  margin-top: 10px;
  height: 110px;
  width: 180px;
  background-color: darkorchid;
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}  
 <td>
  <div class="banner-side-container">
    <div class="view-teams-banner">
      <h2>View Teams</h2>
    </div>
    <div class="view-matches-banner">
      <h2>View Matches</h2>
    </div>
  </div>
</td>