#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);
}