J'ai des problèmes parce que j'ai une div que je veux centrer et ce qu'on me dit habituellement
width: 700px;
margin-left: auto;
margin-right: auto;
le problème, c’est que si vous voulez que le div ait une largeur fixe. Je veux que la div ajuste sa taille en fonction du texte dans la div, et reste centrée J'ai essayé:
width: auto;
margin-left: auto;
margin-right: auto;
mais cela n'a pas fonctionné. Il étend la div pour remplir l'écran quand je fais cela.
Quelqu'un sait quoi faire ici?
pour le bloc ou le corps parent - text-align:center
; pour le bloc centerd display:inline-block
;
.center{display:inline-block;background:red}
body{text-align:center}
<div class="center">
<p contenteditable="true">write text</p>
</div>
avez-vous essayé l'approche présentée ici? http://www.tightcss.com/centering/center_variable_width.htm
fondamentalement . placez votre contenu dans un div flotté mettez ce div flottant dans un autre div flotté
mettre à gauche: 50%, position relative sur div externe mettre à gauche: -50%, position relative sur div interne
enfin, imbriquons tout dans une div de plus avec débordement: hidden
.outermost-div{
background-color: blue;
overflow:hidden;
}
.inner-div{
float:left;
left:50%;
background-color: yellow;
position: relative;
}
.centerthisdiv {
position:relative;
left: -50%;
background-color: green;
float:right;
width:auto;
}
voici ma démonstration de jsfiddle: http://jsfiddle.net/wbhyX/1/
Utilisez la marge: 0px auto; and display: table;
Voici les exemples: https://jsfiddle.net/da8p4zdr/
Vous voudrez peut-être essayer CSS display:table-cell
ou display:table
Essayez cette structure.
<div class="container">
<div class="center_div">
</div>
</div>
.container{
float: left;
left: 50%;
position: relative;
}
.center_div{
position: relative;
left: -50%;
float: left;
}
la réponse de zloctb le 30 août 2013 à 04h14 fonctionnait en principe mais était incomplète. Si vous voulez que la largeur de votre élément soit 'auto' en fonction de son contenu ET centrée dans son parent MAIS avec le contenu de l'élément CHILD aligné à gauche, procédez comme suit (car c'est le moyen le plus simple):
.parent {
width: 100%;
text-align: center;
}
.parent div.child {
display: inline-block;
text-align: left;
width: auto;
}
(Évidemment, si vous vouliez simplement que tout soit strictement centré, vous n’auriez pas besoin du code pour l’élément enfant.)
Édité:
utiliser table
, il pourrait être plus facile à coiffer. Ajoutez ensuite div
dans la tr
Centrer un élément horizontalement peut devenir un peu étrange, car la fonctionnalité n'est pas très intuitive. Vraiment, vous devez jouer à des jeux avec text-align:center;
et margin:auto,
et vous devez savoir quand utiliser lesquels.
Par exemple, si je veux centrer le contenu d'un élément (texte brut), y compris les boutons et les entrées, je peux utiliser text-align:center
.
.text-center {
text-align:center;
}
<div class="text-center" style="border:1px dashed blue;padding:6px;" >
My contents are centered! That includes my <input placeholder="inputs" /> and my <button>buttons.</button>
</div>
Si nous ajoutons d'autres éléments à notre conteneur, leur largeur sera forcée à 100%. Cela nous aide à émuler le fait qu’il soit centré car techniquement, à 100%, il est centré! Silly, n'est ce pas?
.text-center {
text-align:center;
}
<div class="text-center" style="border:1px dashed blue;padding:6px;" >
My contents are centered! That includes my <input placeholder="inputs" /> and my <button>buttons.</button>
<p style="background-color:orange;width:auto" >Even though my width is explicitly defined as "auto," I still have 100% width! What gives?!</p>
</div>
Si votre propriété width IS est bien définie, vous pouvez utiliser le style margin: auto
pour la centrer sur le parent.
<div style="margin:auto;border:1px solid black;width:300px;" >
I am centered!
</div>
Vous devez déterminer quelle solution est la meilleure pour vous. J'aimerais pouvoir aider davantage, mais il est difficile de savoir quelle solution conviendra le mieux à vos besoins si vous n'avez pas fourni le code HTML pour vous!
De toute façon, j'espère ce JSFiddle aide à clarifier les choses!
.outer-container { position: relative; à gauche: 50%; float: left; clarifier les deux; marge: 10px 0; text-align: left; }
.inner-container { fond: rouge; position: relative; à gauche: -50%; text-align: left; }