У меня на странице есть кнопка, которая при нажатии отображает div
(стиль всплывающего окна) в середине моего экрана.
Я использую следующий CSS для центрирования div
в середине экрана:
.PopupPanel
{
border: solid 1px black;
position: absolute;
left: 50%;
top: 50%;
background-color: white;
z-index: 100;
height: 400px;
margin-top: -200px;
width: 600px;
margin-left: -300px;
}
Этот CSS работает нормально, пока страница не прокручивается вниз.
Но если я помещаю кнопку внизу своей страницы, при нажатии на нее div
вверху отображается значок , и пользователь должен прокрутить вверх, чтобы просмотреть содержимое div
.
Я хотел бы знать, как отображать div
в середине экрана, даже когда страница прокручена.
left: 50%; top: 50%
перемещает левый верхний угол из.PopupPanel
к центру экрана. Затем мы перемещаем его на половину ширины и высоты обратно в центр. См. Centering на css-tricks.comОтветы:
Измените
position
атрибут наfixed
вместоabsolute
.источник
Изменить
position:absolute;
наposition:fixed;
источник
+ Изменить
к
Спецификации W3C для
position: absolute
и дляposition: fixed
.источник
Я только что нашел новый трюк, позволяющий центрировать прямоугольник в центре экрана, даже если у вас нет фиксированных размеров. Допустим, вам нужен блок шириной 60% / высотой 60%. Чтобы сделать его центрированным, создайте 2 блока: блок «контейнер», положение которого слева: 50% сверху: 50%, и поле «текст» внутри с обратным положением слева: -50%; верх: -50%;
Он работает и совместим с несколькими браузерами.
Посмотрите код ниже, вы, вероятно, получите лучшее объяснение:
источник
Правильный метод
источник