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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie die
position
Attributfixed
stattabsolute
.Ändern
position:absolute;
zuposition:fixed;
Ändern
Zu
W3C-Spezifikationen für
position: absolute
und fürposition: fixed
.Fand ich einen neuen trick zu Mitte ein Feld in der Mitte des Bildschirms, auch wenn Sie keine festen Dimensionen. Lassen Sie uns sagen, Sie möchten ein box 60% Breite /60% Höhe. Der Weg, um es zentriert ist, durch die Schaffung von 2 Boxen: eine "container" - box, die position Links: 50% top :50% und einem "text" - box, die innen mit umgekehrter position left: -50%; top :-50%;
Es funktioniert und es ist cross-browser kompatibel.
Schauen Sie sich den code unten, bekommen Sie wahrscheinlich eine bessere Erklärung:
HTML:
Richtige Methode ist