Center 'div' in der Mitte des Bildschirms, auch wenn die Seite gescrollt, nach oben oder unten?

Ich habe in meine Seite eine Schaltfläche, die beim anklicken zeigt eine div (popup-Stil) in der Mitte von meinem Bildschirm.

Ich bin mit dem folgenden CSS, um die Mitte der div in der Mitte des Bildschirms:

.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;
}

Diese CSS funktioniert gut, solange die Seite nicht nach unten gescrollt.

Aber, wenn ich den Knopf an der Unterseite von meiner Seite, wenn es angeklickt wird, werden die div wird im oberen Bereich angezeigt, und der Benutzer hat, um nach oben zu Blättern, um den Inhalt der div.

Ich würde gerne wissen, wie die Anzeige der div in der Mitte des Bildschirms, auch wenn die Seite ein Bildlauf durchgeführt wurde.

  • Frage. Warum sind Sie subtrahieren margin-top: (200) und margin-left. Ich glaube, das ist die mittlere von der Höhe und Breite, aber warum müssen wir tun, um die absolute Mitte? Sollte nicht die linken 50% und die oberen 50% den trick tun?
  • Die left: 50%; top: 50% verschiebt die linke Obere Ecke des .PopupPanel auf die Mitte des Bildschirms. Wir verschieben es dann die Hälfte der Breite und Höhe wieder zurück zur Mitte der Mitte. Siehe Zentrierung auf css-tricks.com
InformationsquelleAutor tanya | 2011-06-13
Schreibe einen Kommentar