Mam na swojej stronie przycisk, który po kliknięciu wyświetla div
(styl wyskakującego okienka) na środku ekranu.
Używam następującego kodu CSS, aby wyśrodkować div
środek ekranu:
.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;
}
Ten CSS działa dobrze, o ile strona nie jest przewijana w dół.
Ale jeśli umieszczę przycisk u dołu mojej strony, po jego kliknięciu div
jest wyświetlany u góry, a użytkownik musi przewinąć w górę, aby wyświetlić zawartość div
.
Chciałbym wiedzieć, jak wyświetlić div
środek ekranu, nawet jeśli strona została przewinięta.
left: 50%; top: 50%
przesuwa górny lewy róg z następujących.PopupPanel
na środku ekranu. Następnie przesuwamy go o połowę szerokości i wysokości z powrotem do środka, do środka. Zobacz Wyśrodkowanie na css-tricks.comOdpowiedzi:
Zmień
position
atrybut nafixed
zamiastabsolute
.źródło
Zmień
position:absolute;
naposition:fixed;
źródło
Zmiana
Do
Specyfikacje W3C dla
position: absolute
i dlaposition: fixed
.źródło
Właśnie znalazłem nowy sposób na wyśrodkowanie pudełka na środku ekranu, nawet jeśli nie masz stałych wymiarów. Powiedzmy, że chcesz pudełko o 60% szerokości / 60% wysokości. Sposobem na wyśrodkowanie jest utworzenie 2 pól: „kontenera”, którego pozycja po lewej stronie: 50% u góry: 50%, i pola „tekstowego” w środku z odwróconą pozycją po lewej: -50%; góra: -50%;
Działa i jest kompatybilny z różnymi przeglądarkami.
Sprawdź poniższy kod, prawdopodobnie uzyskasz lepsze wyjaśnienie:
źródło
Prawidłowa metoda to
źródło