CSS horizontal centrage fixe div?
#menu {
position: fixed;
width: 800px;
background: rgb(255, 255, 255); /* The Fallback */
background: rgba(255, 255, 255, 0.8);
margin-top: 30px;
}
Je sais que cette question est un million de fois là-bas, cependant je ne peux pas trouver une solution à mon cas.
J'ai un div, qui devrait être fixé sur l'écran, même si la page défile il faut toujours rester CENTRÉ au milieu de l'écran!
La div doit avoir 500px
largeur, doit être 30px
loin du sommet (margin-top), devrait être centrée horizontalement dans le milieu de la page pour que tous les navigateurs tailles et ne doit pas bouger lorsque vous faites défiler le reste de la page.
Est-ce possible?
- Voir aussi stackoverflow.com/questions/17069435/...
Vous devez vous connecter pour publier un commentaire.
-400
est à cause de la largeur de la div d'800
.Bahodir
alors que je le vois simplement commeuser126284
Les réponses ici sont obsolètes. Maintenant, vous pouvez facilement utiliser un CSS3 transformer sans coder en dur une marge. Cela fonctionne sur tous les éléments, y compris les éléments avec pas la largeur ou la dynamique de la largeur.
Centre Horizontal:
Centre Vertical:
À la fois horizontale et verticale:
La compatibilité n'est pas un problème: http://caniuse.com/#feat=transforms2d
translateX(-50%)
...Si vous utilisez inline-blocks est une option que je recommande cette approche:
J'ai écrit un post à ce sujet ici: http://salomvary.github.com/position-fixed-horizontally-centered.html
width
ou quelque chose, contrairement à @Quentins répondreModifier septembre 2016: Même s'il est agréable d'obtenir un occasionnels haut-voter pour cette, parce que le monde a évolué, j'aimerais maintenant aller avec la réponse qui utilise transformer (et qui a une tonne de upvotes). Je ne voudrais pas le faire cette manière.
Une autre façon de ne pas avoir à calculer une marge ou besoin d'un sous-conteneur:
bottom: 0;
bien.bottom:0
permettrait de s'assurer que le menu est toujours centrée verticalement, mais je vois maintenant ce n'est pas ce que l'OP a demandé. 🙂... ou vous pouvez vous envelopper menu div dans un autre:
Il est possible de horisontally centre de la div de cette façon:
html:
css:
À l'aide de cette façon, vous aurez toujours votre bloc interne centré, en outre, il peut être facilement transformé à vrai sensibles (dans l'exemple, il sera juste de liquide sur les petits écrans), donc pas de limitation dans comme dans la question à l'exemple et à la réponse choisie.
Voici un autre deux-div solution. Essayé de rester concis et de ne pas codé en dur. Tout d'abord, le prévisibles html:
Le principe derrière le code css suivant est de la position de certains côté de "l'extérieur", puis utiliser le fait qu'il assume la taille de "l'intérieur" relativement maj ce dernier.
Cette approche est similaire à Quentin, mais intérieure peut être de taille variable.