2009-07-30 10 views
20

Je cherche un moyen d'afficher une boîte de dialogue de confirmation qui est toujours centrée sur la page et qui flotte sur la page.Comment concevoir un CSS pour une boîte de dialogue de confirmation flottante centrée?

essayé, mais ce n'est pas « toujours centrée » du tout, étant donné que la position est fixée:

.Popup 
{ 
    text-align:center; 
    position: absolute; 
    bottom: 10%; 
    left: 27%; 
    z-index:50; 
    width: 400px; 
    background-color: #FFF6BD; 
    border:2px solid black; 
} 

Toute idée? Merci

Répondre

34

Essayez d'utiliser cette CSS

#centerpoint { 
 
    top: 50%; 
 
    left: 50%; 
 
    position: absolute; 
 
} 
 

 
#dialog { 
 
    position: relative; 
 

 
    width: 600px; 
 
    margin-left: -300px; 
 

 
    height: 400px; 
 
    margin-top: -200px; 
 
}
<div id="centerpoint"> 
 
    <div id="dialog"></div> 
 
</div>

#centerpoint devrait être le conteneur div de la boîte de dialogue

Remarque que le #centerpoint DIV devrait être à l'intérieur e corps élément ou éléments intérieurs ne possèdent pas de position : relative; propriété

+1

Wow, c'est vraiment incroyable, je vais creuser dans ça, c'est sûr! – Vinzz

+0

Je l'ai essayé, ça marche dans IE, Firefox, Chrome, Safari et Opera. –

+1

Dois-je voir quelque chose si je clique sur Exécuter l'extrait de code? –

1
.Popup 
{ 
width:400px; 
margin-left:auto; 
margin-right:auto; 
} 

C'est l'alignement horizontal; l'alignement vertical est un peu plus délicat. Juste Google autour de "centre vertical css" ou quelque chose.

+0

que les centres ne la boîte de dialogue dans son conteneur parent. Mais il ne flotte pas sur la page. –

+1

jep, vous avez raison. –

+0

+1 pour 'jep': D –

17

Par rapport à @ la réponse de Toma, vous pouvez le faire sur un élément

#theDiv { 
 
    position: fixed; 
 
    top: 50%; 
 
    left: 50%; 
 
    width: 200px; 
 
    margin-left: -100px; 
 
    height: 50px; 
 
    margin-top: -25px; 
 
    background: yellow; 
 
}
<div id="theDiv" />

Cela vous permet de le placer n'importe où sur la page indépendamment des conteneurs parents et leur position Propriétés.

8

CSS3 transformer peut être utilisé pour éviter la largeur hardcoded et des marges:

.dialog { 
    top: 50%; 
    left: 50%; 
    -webkit-transform: translateX(-50%) translateY(-50%); 
    -moz-transform: translateX(-50%) translateY(-50%); 
    -ms-transform: translateX(-50%) translateY(-50%); 
    transform: translateX(-50%) translateY(-50%); 
} 

Exemple d'utilisation: http://tympanus.net/codrops/2013/06/25/nifty-modal-window-effects/

Questions connexes