Нижний колонтитул веб-сайта не накладывается на модальную всплывающую форму

#html #css

#HTML #css

Вопрос:

У меня есть модальная всплывающая форма для моего веб-сайта, фон которой должен перекрывать весь экран просмотра. Веб-сайт содержит верхний и нижний колонтитулы, а модальный запускается простым javascript. Все работает нормально, за исключением того, что мой нижний колонтитул по-прежнему отображается сверху и не накладывается на модальный фон.

Вот мой CSS-код:

 #footer {
    position:fixed;
    width: 100%;
    z-index: 2;
    bottom: 0;
    padding: 8px;
    background-color: #688596;
    color: white;
    box-shadow: 0px 2px 8px #676767;
}

.modalBackground {
    display: none;
    position: fixed;
    z-index: 1;
    padding-top: 100px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(180, 180, 180, 0.6);
}
  

Javascript устанавливает display:none для display:block для .modalBackground.
Как я уже сказал, все работает нормально, но нижний колонтитул по-прежнему находится сверху. Чего мне здесь не хватает?
Заранее спасибо!

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

1. вы должны увеличить z-индекс. Попробуйте «3» для модального.

Ответ №1:

Попробуйте увеличить значение z-index of .modalBackground до большего, чем значение вашего верхнего и нижнего колонтитулов. В настоящее время z-index of .footer является 2 . Поэтому .modalBackground ‘s z-index должно быть больше 2 . Попробуйте установить его на 999 . Итак, класс .modalBackground должен быть таким в вашем css:

 .modalBackground {
    display: none;
    position: fixed;
    z-index: 999;
    padding-top: 100px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(180, 180, 180, 0.6);
}
  

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

1. Почему-то я имел в виду, что z-индекс представляет приоритет, а низкие индексы выше высоких индексов -.- Теперь работает отлично! Спасибо, ребята!

2. Да, я могу понять. Вычисления основаны на осях x, y и z. Таким образом, перенос div вперед или назад в css — это ось z. Более высокая ось z, ну, в общем, выше в стеке. Вот как я это представляю. Надеюсь, это поможет вам.

Ответ №2:

Это потому, что z-index of footer больше, чем z-index ваш modal .

Элемент с большим порядком стека всегда находится перед элементом с более низким порядком стека.

Подробнее об этом читайте z-index здесь. Попробуйте это (я только что изменил z-index es):

 #footer {
    position:fixed;
    width: 100%;
    z-index: 1;
    bottom: 0;
    padding: 8px;
    background-color: #688596;
    color: white;
    box-shadow: 0px 2px 8px #676767;
}

.modalBackground {
    display: none;
    position: fixed;
    z-index: 2;
    padding-top: 100px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(180, 180, 180, 0.6);
}