Выравнивание загрузчика по центру страницы и добавление к нему текста

#html #css

#HTML #css

Вопрос:

Я разработал загрузчик и расположил его по центру с помощью top:0 left:0 z:10 и text-align:center . Он не позиционируется по центру страницы. Я также добавил текст под названием Loading, но он не отображается.

 #container-sleftpinner {
  background: #ffffff;
  color: #666666;
  position: fixed;
  height: 100%;
  width: 100%;
  z-index: 10;
  top: 0;
  left: 0;
  text-align: center;
  opacity: .80;
}

.loader,
.loader:before,
.loader:after {
  background: grey;
  -webkit-animation: load1 1s infinite ease-in-out;
  animation: load1 1s infinite ease-in-out;
  width: 1em;
  height: 4em;
}

.loader {
  color: grey;
  background-repeat: no-repeat;
  background-position: center;
  position: fixed;
  display: block;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  text-indent: -9999em;
  margin: 88px auto;
  position: relative;
  font-size: 11px;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation-delay: -0.16s;
  animation-delay: -0.16s;
}

.loader:before,
.loader:after {
  position: absolute;
  top: 0;
  content: '';
}

.loader:before {
  left: -1.5em;
  -webkit-animation-delay: -0.32s;
  animation-delay: -0.32s;
}

.loader:after {
  left: 1.5em;
}

.loader p {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 50%;
  display: inline-block;
  text-align: center;
  margin-bottom: -5em;
}

@-webkit-keyframes load1 {
  0%,
  80%,
  100% {
    box-shadow: 0 0;
    height: 4em;
  }
  40% {
    box-shadow: 0 -2em;
    height: 5em;
  }
}

@keyframes load1 {
  0%,
  80%,
  100% {
    box-shadow: 0 0;
    height: 4em;
  }
  40% {
    box-shadow: 0 -2em;
    height: 5em;
  }
}  
 <div id="container-spinner" style="display:block;">
  <div class="loader">
    <p>Loading...</p>
  </div>
</div>  

Ответ №1:

На основе вашего кода.

присвойте .container-spinner классу следующее, и содержимое будет сосредоточено. Я изменил отображение на быть flex и убедился, что оно hight:100vh заполняет страницу, и все, что осталось, это центрировать его по вертикали и горизонтали с помощью justify-content и align-items (не забудьте удалить встроенный стиль, чтобы заставить это работать)

     .container-spinner {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100vh;
}
  

Результат

Редактировать

на основе вашего запроса. Вот рабочий код с отображаемым текстом и всеми изменениями в HTML и CSS.

введите описание изображения здесь

 .container-spinner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  height: 100vh;
}

#container-sleftpinner {
  background: #ffffff;
  color: #666666;
  position: fixed;
  height: 100%;
  width: 100%;
  z-index: 10;
  top: 0;
  left: 0;
  text-align: center;
  opacity: 0.8;
}

.loader,
.loader:before,
.loader:after {
  background: grey;
  -webkit-animation: load1 1s infinite ease-in-out;
  animation: load1 1s infinite ease-in-out;
  width: 1em;
  height: 4em;
}

.loader {
  color: grey;
  background-repeat: no-repeat;
  background-position: center;
  text-indent: -9999em;
  margin: 10px auto;
  font-size: 11px;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation-delay: -0.16s;
  animation-delay: -0.16s;
}

.loader:before,
.loader:after {
  position: absolute;
  top: 0;
  content: "";
}

.loader:before {
  left: -1.5em;
  -webkit-animation-delay: -0.32s;
  animation-delay: -0.32s;
}

.loader:after {
  left: 1.5em;
}

.container-spinner p {
  text-align: center;
}

@-webkit-keyframes load1 {
  0%,
  80%,
  100% {
    box-shadow: 0 0;
    height: 4em;
  }
  40% {
    box-shadow: 0 -2em;
    height: 5em;
  }
}

@keyframes load1 {
  0%,
  80%,
  100% {
    box-shadow: 0 0;
    height: 4em;
  }
  40% {
    box-shadow: 0 -2em;
    height: 5em;
  }
}  
 <div class="container-spinner">
  <div class="loader">
  </div>
  <p>Loading...</p>
</div>  

Если это не сработает, пожалуйста, дайте мне знать.

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

1. Почему текст не отображается?

2. О, я проверю это на минутку.

3. Я исправил это и добавил изменения во фрагмент.