Cela ne fonctionnera pas car la text-alignpropriété s'applique aux conteneurs de blocs, pas aux éléments en ligne, et imgest un élément en ligne. Voir la spécification W3C .
j'ai essayé cette méthode et ça marche! mais quand j'ai essayé 2 images, cela n'a pas fonctionné, il s'est simplement empilé les uns sur les autres comme un totem, des idées pour aligner 2 images sur la même ligne au milieu?
PatrickGamboa
1
Comment n'est-il pas pris en charge par le W3C? Pouvez-vous fournir des liens pour appuyer cette réclamation?
Madara's Ghost
1
@SecondRikudo: text-alignsert au centrage du texte, comme son nom l'indique. Pour les éléments de bloc, margin: 0 auto;c'est l' approche recommandée .
Mrchief
4
@Mrchief Les images sont des éléments en ligne, pas des blocs. text-alignfonctionne aussi bien sur eux.
Madara's Ghost
4
Cette explication est un peu bizarre, non? Vous dites que «text-align» s'applique aux blocs et non aux inserts, ce qui, je crois, puis vous le changez littéralement en élément de bloc tout en évitant d'utiliser text-align. Je veux dire que votre code fonctionne, mais ce paragraphe doit être complètement reformulé, imo.
Octopus
118
Cela ne fonctionne pas toujours ... sinon, essayez:
Je ne suis pas d'accord, je pense que cela répond à la question. Le PO a demandé si la propriété text-align: centerétait un bon moyen de centrer une image et n'a pas précisé que la propriété devait faire partie de la balise img. Cette réponse utilise la propriété en question dans le but de fournir une solution (qui fonctionne).
MandM
2
Cela a fonctionné pour moi lorsque l'affichage: bloc, etc. ne fonctionnerait pas.
malheureusement, <center>n'est pas supporté en html5, mais bon sang, ça marche.
Ayrat
13
En fait, le seul problème avec votre code est que l' text-alignattribut s'applique au texte (oui, les images comptent comme du texte) à l'intérieur de la balise. Vous souhaitez placer une spanbalise autour de l'image et définir son style text-align: centercomme suit:
L'image sera centrée. En réponse à votre question, c'est la manière la plus simple et la plus infaillible de centrer des images, tant que vous vous souvenez d'appliquer la règle au contenant de l'image span(ou div).
Un spanélément est display: inline;par défaut, donc cela pose le même problème que de le placer text-align: center;sur imglui - même. Vous devez définir le spanpour display: block;ou le remplacer par un divpour que cela fonctionne.
Web_Designer
10
Il existe trois méthodes pour centrer un élément que je peux suggérer:
Les première et deuxième méthodes ne fonctionnent que si le parent est au moins aussi large que l'image. Lorsque l'image est plus large que son parent, l'image ne restera pas centrée !!!
Mais: La troisième méthode est un bon moyen pour cela!
<p>Hello the following image is centered</p><pclass="pic"><imgsrc="https://twimg0-a.akamaihd.net/profile_images/440228301/StackoverflowLogo_reasonably_small.png"/></p><p>Did it work?</p>
CSS:
p.pic {
width:48px;
margin:0auto;}
Le seul problème ici est que la largeur du paragraphe doit être la même que la largeur de l'image . Si vous ne mettez pas de largeur sur le paragraphe, cela ne fonctionnera pas, car il supposera 100% et votre image sera alignée à gauche, sauf si vous utilisez bien sûrtext-align:center .
Essayez le violon et expérimentez-le si vous le souhaitez.
chasseur de rêves, si vous proposez une autre façon de centrer une image en utilisant css, alors vous devez développer un peu votre question. Vous pourriez expliquer comment et pourquoi cette alternative proposée serait un meilleur moyen d'atteindre l'objectif de l'interrogateur, peut-être en incluant un lien vers la documentation pertinente. Cela les rendrait plus utiles pour eux, et aussi plus utiles aux autres lecteurs de sites qui recherchent des solutions à des problèmes similaires.
Vince Bowdren
6
Si vous utilisez une classe avec une image, alors ce qui suit fera l'affaire
class{
display: block;
margin:0auto;}
Si c'est seulement une image dans une classe spécifique que vous souhaitez aligner au centre, alors ce qui suit fera:
Je changerais celui du bas pour être img.classou ajouterais une img.classversion aussi. Merci pour cela.
Chuck Savage
6
Sur le conteneur contenant l'image, vous pouvez utiliser une Flexbox CSS 3 pour centrer parfaitement l'image à l'intérieur, à la fois verticalement et horizontalement.
Supposons que vous avez <div class = "container"> comme support d'image:
ce que le contenu justifié peut utiliser pour définir l'alignement dans <p> ??
Manjitha teshara, le
Voilà ce que je voulais. Je vous remercie.
Dionne Kim
5
La solution la plus simple que j'ai trouvée était d'ajouter ceci à mon élément img:
style="display:block;margin:auto;"
Il semble que je n'ai pas besoin d'ajouter "0" avant "auto" comme suggéré par d'autres. C'est peut-être la bonne façon, mais cela fonctionne assez bien pour moi sans le "0". Au moins sur les derniers Firefox, Chrome et Edge .
seulement auto signifie auto auto auto autoet 0 autosignifie 0 auto 0 auto... et par défaut, l'auto pour la marge inférieure et supérieure est 0donc ajouter 0 ou non est exactement le même dans ce cas qui vous fait répondre à un nième double de ceux déjà fournis
Temani Afif
Votre commentaire explique pourquoi cela fonctionne. Génial. Mais laquelle des réponses précédentes a dit que "auto" sans "0" fonctionne aussi? Ce fait ne vaut-il pas la peine d'être mentionné?
Panu Logic
dans ce cas, il doit s'agir d'un commentaire, car dans ce cas particulier, les deux sont identiques. Je ne pense pas que nous devrions avoir une réponse pour toutes les valeurs équivalentes, dans ce cas , nous pouvons écrire: auto, auto auto, auto auto auto, auto auto auto auto, 0 auto 0, 0 auto, 0 auto 0 auto, et ainsi de suite ... vous pensez que chacun méritent une réponse différente? Je ne pense pas.
Temani Afif
Je ne dirais pas que si deux segments différents de CSS produisent le même résultat final, ces deux segments CSS "sont les mêmes". Leur sortie est la même mais leur code source n'est pas le même. Tout comme en général, vous pouvez écrire n'importe quel nombre de programmes différents qui produisent la même sortie. Ensuite, il est utile de savoir (et de dire aux personnes qui demandent) lequel de ces programmes "équivalents" semble être le plus simple et le plus court à écrire.
Panu Logic
et tout cela devrait être écrit dans une seule réponse. C'est pourquoi cette réponse est plus appropriée en tant que commentaire qu'une toute nouvelle réponse. Nous devons présenter toutes les choses équivalentes ensemble et ne pas en faire des fonctionnalités distinctes, ce qui peut sembler complètement différent, car ce n'est pas le cas [à mon avis, pas besoin d'être d'accord avec lui ou d'argument contraire]. Et je ne parle pas de différents programmes qui produisent la même sortie, c'est une chose complètement différente car la logique peut ne pas être la même. Ici, nous parlons de la même propriété et de la même valeur (comme i++sont les mêmes que i+=1)
Vous pouvez utiliser text-align: centersur le parent et changer le imgen display: inline-block→ il se comporte donc comme un élément de texte et sera centré si le parent a une largeur!
Le centrage d'une image non d'arrière-plan dépend de l'affichage de l'image en ligne (comportement par défaut) ou en bloc.
Cas de inline
Si vous souhaitez conserver le comportement par défaut de la propriété CSS d'affichage de l'image, vous devrez encapsuler votre image dans un autre élément de bloc sur lequel vous devez définir text-align: center;
Cas de bloc
Si vous voulez considérer l'image comme un élément de bloc à part entière, alors la text-alignpropriété n'a pas de sens, et vous devriez le faire à la place:
La propriété text-align: center; une bonne façon de centrer une image en utilisant CSS?
Oui et non.
Oui, si l'image est le seul élément à l'intérieur de son enveloppe.
Non, au cas où vous auriez d'autres éléments dans le wrapper de l'image parce que tous les éléments enfants qui sont frères et sœurs de l'image hériteront de la text-alignpropriété: et peut-être que vous n'aimeriez pas cet effet secondaire.
Une autre façon de mettre à l'échelle - affichez-le:
img {
width:60%;/* Or required size of image. */
margin-left:20%/* Or scale it to move image. */
margin-right:20%/* It doesn't matters much if using left and width */}
tu voulais dire margin: 0 auto;? La clé est le réglage margin-leftet margin-rightle auto. margin: 0 auto;est juste un raccourci pour cela.
Web_Designer
1
@Web_Designer J'ai essayé margin: 0 auto, margin: 0et margin: auto, aucun travaillé. Notez que dans l'inspecteur de Chrome, lors de l'utilisation margin: 0 auto, est frappé la propriété avec un point d'exclamation disant invalid property value(ou quoi que cela signifie)
OverCoder
Je pense que vous vouliez dire "position: absolue;" au lieu de "affichage: absolu;"
WebDevDaniel
Merci @WebDevDaniel d'avoir souligné la faute de frappe. Oh, d'ailleurs, vous voudrez peut-être utiliser le relativepositionnement plutôt que absolute, les deux fonctionnent assez bien.
OverCoder
0
J'ai découvert que si j'ai une image et du texte à l'intérieur d'un div, alors je peux utilisertext-align:center pour aligner le texte et l'image d'un seul coup.
HTML:
<divclass="picture-group"><h2class="picture-title">Picture #1</h2><imgsrc="http://lorempixel.com/99/100/"alt=""class="picture-img"/><pclass="picture-caption">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Temporibus sapiente fuga, quia?</p></div>
Parfois, nous ajoutons directement le contenu et les images sur l'administrateur WordPress à l'intérieur des pages. Lorsque nous insérons les images à l'intérieur du contenu et que nous voulons aligner ce centre. Le code est affiché comme:
Réponses:
Cela ne fonctionnera pas car la
text-align
propriété s'applique aux conteneurs de blocs, pas aux éléments en ligne, etimg
est un élément en ligne. Voir la spécification W3C .Utilisez-le à la place:
la source
text-align
sert au centrage du texte, comme son nom l'indique. Pour les éléments de bloc,margin: 0 auto;
c'est l' approche recommandée .text-align
fonctionne aussi bien sur eux.Cela ne fonctionne pas toujours ... sinon, essayez:
la source
Je suis tombé sur ce post , et cela a fonctionné pour moi:
(Alignement vertical et horizontal)
la source
Une autre façon de procéder serait de centrer un paragraphe englobant:
la source
text-align: center
était un bon moyen de centrer une image et n'a pas précisé que la propriété devait faire partie de la balise img. Cette réponse utilise la propriété en question dans le but de fournir une solution (qui fonctionne).Tu peux faire:
<center><img src="..." /></center>
la source
<center>
n'est pas supporté en html5, mais bon sang, ça marche.En fait, le seul problème avec votre code est que l'
text-align
attribut s'applique au texte (oui, les images comptent comme du texte) à l'intérieur de la balise. Vous souhaitez placer unespan
balise autour de l'image et définir son styletext-align: center
comme suit:L'image sera centrée. En réponse à votre question, c'est la manière la plus simple et la plus infaillible de centrer des images, tant que vous vous souvenez d'appliquer la règle au contenant de l'image
span
(oudiv
).la source
span
élément estdisplay: inline;
par défaut, donc cela pose le même problème que de le placertext-align: center;
surimg
lui - même. Vous devez définir lespan
pourdisplay: block;
ou le remplacer par undiv
pour que cela fonctionne.Il existe trois méthodes pour centrer un élément que je peux suggérer:
Utilisation de la
text-align
propriétéUtilisation de la
margin
propriétéUtilisation de la
position
propriétéLes première et deuxième méthodes ne fonctionnent que si le parent est au moins aussi large que l'image. Lorsque l'image est plus large que son parent, l'image ne restera pas centrée !!!
Mais: La troisième méthode est un bon moyen pour cela!
Voici un exemple:
la source
img
intérieur justifiédiv
dans uneWebView
injection CSS. Je vous remercie!Uniquement si vous devez prendre en charge les anciennes versions d'Internet Explorer.
L'approche moderne consiste à faire
margin: 0 auto
dans votre CSS.Exemple ici: http://jsfiddle.net/bKRMY/
HTML:
CSS:
Le seul problème ici est que la largeur du paragraphe doit être la même que la largeur de l'image . Si vous ne mettez pas de largeur sur le paragraphe, cela ne fonctionnera pas, car il supposera 100% et votre image sera alignée à gauche, sauf si vous utilisez bien sûr
text-align:center
.Essayez le violon et expérimentez-le si vous le souhaitez.
la source
la source
Si vous utilisez une classe avec une image, alors ce qui suit fera l'affaire
Si c'est seulement une image dans une classe spécifique que vous souhaitez aligner au centre, alors ce qui suit fera:
la source
img.class
ou ajouterais uneimg.class
version aussi. Merci pour cela.Sur le conteneur contenant l'image, vous pouvez utiliser une Flexbox CSS 3 pour centrer parfaitement l'image à l'intérieur, à la fois verticalement et horizontalement.
Supposons que vous avez <div class = "container"> comme support d'image:
Ensuite, en tant que CSS, vous devez utiliser:
Et cela rendra tout votre contenu à l'intérieur de cette div parfaitement centré.
la source
La solution la plus simple que j'ai trouvée était d'ajouter ceci à mon élément img:
Il semble que je n'ai pas besoin d'ajouter "0" avant "auto" comme suggéré par d'autres. C'est peut-être la bonne façon, mais cela fonctionne assez bien pour moi sans le "0". Au moins sur les derniers Firefox, Chrome et Edge .
la source
auto auto auto auto
et0 auto
signifie0 auto 0 auto
... et par défaut, l'auto pour la marge inférieure et supérieure est0
donc ajouter 0 ou non est exactement le même dans ce cas qui vous fait répondre à un nième double de ceux déjà fournisauto
,auto auto
,auto auto auto
,auto auto auto auto
,0 auto 0
,0 auto
,0 auto 0 auto
, et ainsi de suite ... vous pensez que chacun méritent une réponse différente? Je ne pense pas.i++
sont les mêmes quei+=1
)Changez simplement l'alignement des parents :)
Essayez celui-ci sur les propriétés parent:
la source
Vous pouvez utiliser
text-align: center
sur le parent et changer leimg
endisplay: inline-block
→ il se comporte donc comme un élément de texte et sera centré si le parent a une largeur!la source
J'utiliserais un div pour aligner au centre une image. Un péché:
la source
Si vous souhaitez définir l'image comme arrière-plan, j'ai une solution:
la source
Le centrage d'une image non d'arrière-plan dépend de l'affichage de l'image en ligne (comportement par défaut) ou en bloc.
Cas de inline
Si vous souhaitez conserver le comportement par défaut de la propriété CSS d'affichage de l'image, vous devrez encapsuler votre image dans un autre élément de bloc sur lequel vous devez définir
text-align: center;
Cas de bloc
Si vous voulez considérer l'image comme un élément de bloc à part entière, alors la
text-align
propriété n'a pas de sens, et vous devriez le faire à la place:La réponse à votre question:
Oui et non.
text-align
propriété: et peut-être que vous n'aimeriez pas cet effet secondaire.Références
la source
Une autre façon de mettre à l'échelle - affichez-le:
la source
Utilisez ceci pour votre
img
CSS:la source
display: block
avecmargin: 0
n'a pas fonctionné pour moi, ni envelopper avec untext-align: center
élément.Voici ma solution:
translateX
est pris en charge par la plupart des navigateursla source
margin: 0 auto;
? La clé est le réglagemargin-left
etmargin-right
leauto
.margin: 0 auto;
est juste un raccourci pour cela.margin: 0 auto
,margin: 0
etmargin: auto
, aucun travaillé. Notez que dans l'inspecteur de Chrome, lors de l'utilisationmargin: 0 auto
, est frappé la propriété avec un point d'exclamation disantinvalid property value
(ou quoi que cela signifie)relative
positionnement plutôt queabsolute
, les deux fonctionnent assez bien.J'ai découvert que si j'ai une image et du texte à l'intérieur d'un
div
, alors je peux utilisertext-align:center
pour aligner le texte et l'image d'un seul coup.HTML:
CSS:
CodePen: https://codepen.io/artforlife/pen/MoBzrL?editors=1100
la source
Parfois, nous ajoutons directement le contenu et les images sur l'administrateur WordPress à l'intérieur des pages. Lorsque nous insérons les images à l'intérieur du contenu et que nous voulons aligner ce centre. Le code est affiché comme:
Dans ce cas, vous pouvez ajouter du contenu CSS comme ceci:
la source
Utilisation:
Je pense que c'est la façon de centrer une image dans le framework Laravel.
la source
cela rendra le centre de l'image à la fois verticalement et horizontalement
la source