Techniquement, votre DIV interne (#container
) est centré horizontalement. La raison pour laquelle vous ne pouvez pas le dire est que avec la propriété CSS width: auto
, le DIV interne s'étend à la même largeur que son parent.
Voir cet exemple: http://jsfiddle.net/UZ4AE/
#container {
width: 50px;
height: auto;
margin: 0 auto;
padding: 10px;
position: relative;
background-color: red;
}
Dans cet exemple, j'ai simplement défini la largeur de #container
à 50px
et défini l'arrière-plan en red
pour que vous puissiez voir qu'il est centré.
Je pense que la vraie question est "Comment centrer des éléments horizontalement avec CSS ?" et la réponse est (roulement de tambour s'il vous plaît) : cela dépend !
Je ne ferai pas un rappel complet des nombreuses façons de centrer des choses avec CSS lorsque W3Schools le fait si bien ici : http://www.w3schools.com/css/css_align.asp mais l'idée de base est que pour les éléments de niveau bloc, vous spécifiez simplement la largeur souhaitée et définissez les marges gauche et droite à auto
.
.centre {
margin-left: auto;
margin-right: auto;
width: 50px;
}
Veuillez noter : Cette réponse ne s'applique qu'aux éléments de niveau bloc ! Pour positionner un élément inline, vous devrez utiliser la propriété text-align: center
sur le premier parent bloc.
0 votes
Essaie d'obtenir la
position:relative;
dans ton#container
2 votes
Sur quels navigateurs effectuez-vous vos tests? Voici un exemple avec votre code qui fonctionne bien sur la dernière version de Chrome : jsfiddle.net/mFwCp
1 votes
Horizontalement, verticalement ou les deux?
4 votes
Présenté dans une vidéo YouTube.
2 votes
Just set container div with
display: flex
and inner div withmargin: auto
andposition: relative
devrait devenir : il suffit de définir la div du conteneur avecdisplay: flex
et la div interne avecmargin: auto
etposition: relative