Абсолютный цвет фона divs не покрывает весь экран - PullRequest
1 голос
/ 18 марта 2020

Я пытаюсь поместить загрузочный экран в мое приложение VueJs, используя только divs, и проблема в том, что я не могу сделать цвет фона divs (loadingScreen) для покрытия всего экрана. Вместо этого он покрывает столько же, сколько высота погрузчика. Я уже пытался добавить поле к телу, но это не решило проблему.

#ctrl {
  position: absolute;
  display: block;
  text-align: center;
  left: 50%;
  top: 40%;
}

#loadingScreen {
  background-color: rgb(0, 0, 0);
  display: block;
  z-index: 1;
  position: absolute;
}

#loader {
  position: relative;
  left: -50%;
  border: 16px solid #f3f3f3;
  border-radius: 50%;
  border-top: 16px solid #3498db;
  width: 120px;
  height: 120px;
  -webkit-animation: spin 2s linear infinite;
  animation: spin 2s linear infinite;
  z-index: inherit;
}

#playPause{
 display:none;
}
<div id="ctrl">
  <div id="playPause">
    <img src="../public/pauseButton.png" />
    <img src="../public/playButton.png" />
  </div>
  <div id="loadingScreen">
    <div id="loader"></div>
  </div>
</div>

1 Ответ

3 голосов
/ 18 марта 2020

Предполагаемое поведение ожидается, поскольку экран загрузки является дочерним элементом элемента ctrl. Это не проблема, я просто изменил положение экрана загрузки на фиксированное и манипулировал его позиционными свойствами, см. Ниже. Тогда я просто центрировал загрузчик.

#ctrl {
  position: absolute;
  display: block;
  text-align: center;
  left: 50%;
  top: 40%;
}

#loadingScreen {
  background-color: rgb(0, 0, 0);
  display: block;
  z-index: 1;
  position: fixed;
  left:0;
  right:0;
  top:0;
  bottom:0;
}

#loader {
  position: relative;
  top: 50%;
  transform: translateY(-50%);
  margin-left:auto;
  margin-right:auto;
  border: 16px solid #f3f3f3;
  border-radius: 50%;
  border-top: 16px solid #3498db;
  width: 120px;
  height: 120px;
  -webkit-animation: spin 2s linear infinite;
  animation: spin 2s linear infinite;
  z-index: 5;
}

#playPause{
 display:none;
}
<div id="ctrl">
  <div id="playPause">
    content
  </div>
  <div id="loadingScreen">
    <div id="loader"></div>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...