Ich habe auf meiner Seite eine Schaltfläche, die beim Klicken einen div
(Popup-Stil) in der Mitte meines Bildschirms anzeigt .
Ich verwende das folgende CSS, um das div
in der Mitte des Bildschirms zu zentrieren:
.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;
}
Dieses CSS funktioniert einwandfrei, solange die Seite nicht nach unten gescrollt wird.
Wenn ich die Schaltfläche jedoch unten auf meiner Seite platziere und sie anklicke, div
wird sie oben angezeigt, und der Benutzer muss nach oben scrollen, um den Inhalt der Seite anzuzeigen div
.
Ich möchte wissen, wie man das div
in der Mitte des Bildschirms anzeigt , auch wenn die Seite gescrollt wurde.
left: 50%; top: 50%
verschiebt die obere linke Ecke von.PopupPanel
in die Mitte des Bildschirms. Wir bewegen es dann um die Hälfte der Breite und Höhe zurück, um es in der Mitte zu zentrieren. Siehe Zentrieren auf css-tricks.comAntworten:
Ändern Sie das
position
Attribut infixed
anstelle vonabsolute
.quelle
Wechseln Sie
position:absolute;
zuposition:fixed;
quelle
Veränderung
Zu
W3C-Spezifikationen für
position: absolute
und fürposition: fixed
.quelle
Ich habe gerade einen neuen Trick gefunden, um eine Box in der Mitte des Bildschirms zu zentrieren, auch wenn Sie keine festen Abmessungen haben. Angenommen, Sie möchten eine Box mit 60% Breite / 60% Höhe. Die Art und Weise, wie es zentriert wird, besteht darin, 2 Felder zu erstellen: ein "Container" -Feld mit der linken Position: 50% oben: 50% und ein "Text" -Feld mit umgekehrter Position links: -50%; oben: -50%;
Es funktioniert und ist browserübergreifend kompatibel.
Schauen Sie sich den folgenden Code an, Sie erhalten wahrscheinlich eine bessere Erklärung:
quelle
Richtige Methode ist
quelle