Centre un " div " dans le milieu de l'écran, même lorsque la page défile vers le haut ou vers le bas?

J'ai dans ma page un bouton qui lorsqu'il est cliqué affiche un div (popup style), au milieu de mon écran.

Je suis en utilisant le CSS suivant au centre de la div dans le milieu de l'écran:

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

Cette CSS fonctionne bien aussi longtemps que la page n'est pas défile vers le bas.

Mais, si je place le bouton en bas de ma page, lorsqu'il est cliqué, la div est affiché en haut, et l'utilisateur doit faire défiler jusqu'à afficher le contenu de la div.

Je voudrais savoir comment faire pour afficher le div dans le milieu de l'écran, même lorsque la page défile.

  • question question. Pourquoi êtes-vous en soustrayant margin-top: (200) et à la marge de gauche. Je crois que c'est la moyenne de la hauteur et la largeur, mais pourquoi devons-nous faire pour obtenir le centre absolu? Ne devrait pas gauche à 50% et supérieure à 50% faire l'affaire?
  • Le left: 50%; top: 50% déplace le coin supérieur gauche de l' .PopupPanel au centre de l'écran. Nous passons ensuite à la moitié de la largeur et de la hauteur de l'arrière par rapport au centre son centre. Voir Centrage sur css-tricks.com
InformationsquelleAutor tanya | 2011-06-13