J'ai une div et je veux qu'elle soit centrée horizontalement - même si je lui donne margin:0 auto;
qu'elle n'est pas centrée ...
.container {
position: absolute;
top: 15px;
z-index: 2;
width:40%;
max-width: 960px;
min-width: 600px;
height: 60px;
overflow: hidden;
background: #fff;
margin:0 auto;
}
Réponses:
Vous devez définir
left: 0
etright: 0
.Ceci spécifie la distance de décalage des bords de marge par rapport aux côtés de la fenêtre.
Source: http://www.w3.org/TR/CSS2/visuren.html#position-props
la source
width
c'est un must!margin: auto
pour que cela fonctionne dans notre casCela ne fonctionne pas dans IE8 mais pourrait être une option à considérer. C'est surtout utile si vous ne souhaitez pas spécifier de largeur.
la source
Bien que les réponses ci-dessus soient correctes, mais pour simplifier les choses pour les débutants, tout ce que vous avez à faire est de définir la marge, gauche et droite. le code suivant le fera à condition que la largeur soit définie et que la position soit absolue:
Démo:
la source
Flexbox? Vous pouvez utiliser flexbox.
la source
left: 0; right: 0;
étendu à 100%, ce qui n'était pas une option car l'élément enfant avait une couleur d'arrière-plan etleft: 50%; transform: translateY(-50%);
ne fonctionnait pas car cela contraignait l'enfant à une largeur de 50%. C'était la seule solution qui préservait les dimensions flexibles de l'enfant (uniquement limitée à la prise en charge du navigateur). Merci!la source
si facile, n'utilisez que les propriétés margin et left, right:
Vous pouvez en voir plus dans cette astuce => Comment définir l'élément div au centre en html - Obinb blog
la source
Voici un lien s'il vous plaît utiliser ceci pour faire le div au centre si la position est absolue.
HTML:
CSS:
Exemple jsfiddle
la source
Vous ne pouvez pas utiliser
margin:auto;
sur desposition:absolute;
éléments, supprimez-le simplement si vous n'en avez pas besoin, mais si vous le faites, vous pouvez utiliserleft:30%;
((100% -40%) / 2) et des requêtes multimédias pour les valeurs max et min:la source