J'ai dans ma page un bouton qui, lorsqu'on clique dessus, affiche un div
(style popup) au milieu de mon écran.
J'utilise le CSS suivant pour centrer le div
au 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;
}
Ce CSS fonctionne bien tant que la page n'est pas déroulée vers le bas.
Mais, si je place le bouton en bas de ma page, quand on clique dessus, le div
s'affiche en haut et l'utilisateur doit faire défiler vers le haut pour afficher le contenu du div
.
Je voudrais savoir comment afficher le div
au milieu de l'écran, même lorsque la page a été défilée.
left: 50%; top: 50%
déplace le coin supérieur gauche du.PopupPanel
vers le centre de l'écran. Nous le déplaçons ensuite de la moitié de la largeur et de la hauteur au centre de son centre. Voir Centrage sur css-tricks.comRéponses:
Remplacez l'
position
attribut par aufixed
lieu deabsolute
.la source
Changer
position:absolute;
pourposition:fixed;
la source
Changement
À
Spécifications W3C pour
position: absolute
et pourposition: fixed
.la source
Je viens de trouver une nouvelle astuce pour centrer une boîte au milieu de l'écran même si vous n'avez pas de dimensions fixes. Disons que vous souhaitez une boîte de 60% de largeur / 60% de hauteur. La façon de le centrer est de créer 2 boîtes: une boîte «conteneur» qui positionne à gauche: 50% haut: 50%, et une boîte «texte» à l'intérieur avec position inversée à gauche: -50%; haut: -50%;
Cela fonctionne et il est compatible avec tous les navigateurs.
Consultez le code ci-dessous, vous obtiendrez probablement une meilleure explication:
la source
La méthode correcte est
la source