J'ai un div qui aura ce CSS:
#some_kind_of_popup
{
position: fixed;
top: 100px;
min-height: 300px;
width: 90%;
max-width: 900px;
}
Maintenant, comment puis-je centrer ce div? Je peux utiliser margin-left: -450px; left: 50%;
mais cela ne fonctionnera que lorsque l'écran est> 900 pixels. Après cela (lorsque la fenêtre est <900 pixels), elle ne sera plus centrée.
Je peux bien sûr faire cela avec une sorte de js, mais y a-t-il un "plus correct" de faire cela avec CSS?
margin: 0 auto
sur unposition: fixed
div. Avez-vous même lu la question?Réponses:
Vous pouvez centrer un paramètre d'élément positionné
fixed
ou et vers , puis & pour comme si vous centriez un élément positionné.absolute
right
left
0
margin-left
margin-right
auto
static
#example { position: fixed; /* center the element */ right: 0; left: 0; margin-right: auto; margin-left: auto; /* give it dimensions */ min-height: 10em; width: 90%; }
Voir cet exemple travaillant sur ce violon .
la source
right
etleft
d'au moins avalue >= witdth / 2
, comme on le voit sur jsfiddle.net/PvfFy/168 , mais ce n'est pas une approche élégante à mon humble avis . Je l'ai testé sur chrome pour le plaisir, je ne sais pas si cela fonctionnera sur le resteVoici une autre méthode si vous pouvez utiliser en toute sécurité la
transform
propriété de CSS3 :.fixed-horizontal-center { position: fixed; top: 100px; /* or whatever top you need */ left: 50%; width: auto; -webkit-transform: translateX(-50%); -moz-transform: translateX(-50%); -ms-transform: translateX(-50%); -o-transform: translateX(-50%); transform: translateX(-50%); }
... ou si vous souhaitez un centrage horizontal ET vertical:
.fixed-center { position: fixed; top: 50%; left: 50%; width: auto; height: auto; -webkit-transform: translate(-50%,-50%); -moz-transform: translate(-50%,-50%); -ms-transform: translate(-50%,-50%); -o-transform: translate(-50%,-50%); transform: translate(-50%,-50%); }
la source
<div id="container"> <div id="some_kind_of_popup"> center me </div> </div>
Vous auriez besoin de l'envelopper dans un récipient. voici le css
#container{ position: fixed; top: 100px; width: 100%; text-align: center; } #some_kind_of_popup{ display:inline-block; width: 90%; max-width: 900px; min-height: 300px; }
la source
Cela fonctionne quelle que soit la taille de son contenu
.centered { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); }
source: https://css-tricks.com/quick-css-trick-how-to-center-an-object-exactly-in-the-center/
la source
transform: translate(-50%, -50%);
rend le texte flou (au moins sur chrome)