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
Vous devez vous connecter pour publier un commentaire.
Changer le
position
attributfixed
au lieu deabsolute
.Changement
position:absolute;
àposition:fixed;
Changement
À
Spécifications du W3C pour
position: absolute
et pourposition: fixed
.Je viens de trouver un nouveau truc pour le centre d'une zone dans le milieu de l'écran, même si vous n'avez pas de taille fixe. Disons que vous souhaitez une boîte de 60% de largeur et de 60% de la hauteur. La façon de le faire est centrée par la création de 2 boîtes: un "conteneur" de la boîte de position gauche: 50% top :50%, et d'un "texte" boîte à l'intérieur avec position inverse à gauche: -50%; top :-50%;
Ça marche et c'est la croix-navigateur compatible.
Vérifier le code ci-dessous, vous avez probablement une meilleure explication:
HTML:
Méthode correcte est