Dies funktioniert nicht, da die text-alignEigenschaft für Blockcontainer und nicht für Inline-Elemente gilt und imgein Inline-Element ist. Siehe die W3C-Spezifikation .
Ich habe diese Methode ausprobiert und es funktioniert! Aber als ich 2 Bilder ausprobiert habe, hat es nicht funktioniert. Es wurde einfach wie ein Totem übereinander gestapelt. Gibt es Ideen, wie man 2 Bilder in derselben Zeile in der Mitte ausrichtet?
PatrickGamboa
1
Wie wird es vom W3C nicht unterstützt? Können Sie Links zur Untermauerung dieser Behauptung bereitstellen?
Madaras Geist
1
@SecondRikudo: text-aligndient zum Zentrieren von Text, wie der Name schon sagt. Für Blockelemente margin: 0 auto;ist der empfohlene Ansatz.
Mrchief
4
@ Mrchief Bilder sind Inline-Elemente, keine Blöcke. text-alignfunktioniert genauso gut bei ihnen.
Madaras Geist
4
Diese Erklärung ist irgendwie komisch, nicht wahr? Sie sagen, 'Textausrichtung' gilt für Blöcke und nicht für Inlines, was meiner Meinung nach der Fall ist. Dann ändern Sie es buchstäblich in ein Blockelement, vermeiden jedoch die Verwendung von Textausrichtung. Ich meine, Ihr Code funktioniert, aber dieser Absatz muss komplett umformuliert werden, imo.
Octopus
118
Das funktioniert nicht immer ... wenn nicht, versuchen Sie:
Ich würde nicht zustimmen, ich denke, das beantwortet die Frage. Das OP fragte, ob die Eigenschaft text-align: centereine gute Möglichkeit ist, ein Bild zu zentrieren, und gab nicht an, dass die Eigenschaft Teil des img-Tags sein muss. Diese Antwort verwendet die betreffende Eigenschaft, um eine Lösung bereitzustellen (die funktioniert).
MandM
2
Dies funktionierte bei mir, wenn Anzeige: Block usw. nicht würde.
wird leider <center>in html5 nicht unterstützt, aber verdammt, es funktioniert.
Ayrat
13
Tatsächlich besteht das einzige Problem mit Ihrem Code darin, dass das text-alignAttribut für Text (ja, Bilder zählen als Text) innerhalb des Tags gilt. Sie möchten ein spanTag um das Bild setzen und seinen Stil wie folgt festlegen text-align: center:
Das Bild wird zentriert. Als Antwort auf Ihre Frage ist dies die einfachste und narrensicherste Methode, um Bilder zu zentrieren, solange Sie daran denken, die Regel auf das Bild span(oder div) des Bildes anzuwenden .
Ein spanElement ist display: inline;standardmäßig aktiviert, daher tritt das gleiche Problem auf wie das Platzieren text-align: center;auf dem imgselbst. Sie müssen das spanauf setzen display: block;oder durch ein ersetzen, damit divdies funktioniert.
Web_Designer
10
Es gibt drei Methoden zum Zentrieren eines Elements, die ich vorschlagen kann:
Die erste und die zweite Methode funktionieren nur, wenn das übergeordnete Element mindestens so breit wie das Bild ist. Wenn das Bild breiter als das übergeordnete Bild ist, bleibt das Bild nicht zentriert !!!
<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;}
Das einzige Problem hierbei ist, dass die Breite des Absatzes mit der Breite des Bildes übereinstimmen muss . Wenn Sie dem Absatz keine Breite hinzufügen, funktioniert dies nicht, da 100% davon angenommen werden und Ihr Bild nach links ausgerichtet wird, es sei denn, Sie verwenden es text-align:center.
Probieren Sie die Geige aus und experimentieren Sie damit, wenn Sie möchten.
Traumjäger, wenn Sie eine alternative Methode zum Zentrieren eines Bildes mit CSS vorschlagen, müssen Sie Ihre Frage ein wenig erweitern. Sie könnten erklären, wie und warum diese vorgeschlagene Alternative ein besserer Weg wäre, um das Ziel des Fragestellers zu erreichen, möglicherweise einschließlich eines Links zu der entsprechenden Dokumentation. Dies würde es für sie nützlicher machen und auch für andere Site-Leser, die nach Lösungen für ähnliche Probleme suchen.
Vince Bowdren
6
Wenn Sie eine Klasse mit einem Bild verwenden, reicht Folgendes aus
class{
display: block;
margin:0auto;}
Wenn es sich nur um ein Bild in einer bestimmten Klasse handelt, das Sie zentrieren möchten, reicht Folgendes aus:
Was im Rechtfertigungsinhalt kann für das Set Align in <p> verwendet werden?
Manjitha Teshara
Das wollte ich. Vielen Dank.
Dionne Kim
5
Die einfachste Lösung, die ich gefunden habe, war, dies meinem img-Element hinzuzufügen:
style="display:block;margin:auto;"
Es scheint, dass ich nicht "0" vor dem "Auto" hinzufügen muss, wie von anderen vorgeschlagen. Vielleicht ist das der richtige Weg, aber es funktioniert gut genug für meine Zwecke auch ohne die "0". Zumindest auf den neuesten Versionen von Firefox, Chrome und Edge .
nur auto mean auto auto auto autound 0 automeans 0 auto 0 auto... und standardmäßig ist auto für den unteren und oberen Rand 0so, dass das Hinzufügen von 0 oder nicht genau das gleiche ist, was Sie dazu
bringt,
Ihr Kommentar erklärt, warum es funktioniert. Großartig. Aber welche der vorherigen Antworten besagt, dass "Auto" ohne "0" auch funktioniert? Ist diese Tatsache nicht erwähnenswert?
Panu Logic
In diesem Fall sollte es sich um einen Kommentar handeln, da in diesem speziellen Fall beide gleich sind. Ich glaube nicht , dass wir eine Antwort für alle die entsprechenden Werte, in diesem Fall sollten wir schreiben: auto, auto auto, auto auto auto, auto auto auto auto, 0 auto 0, 0 auto, 0 auto 0 auto, und so weiter ... denken Sie , jeder eine andere Antwort verdient? Das glaube ich nicht.
Temani Afif
Ich würde nicht sagen, dass wenn zwei verschiedene CSS-Segmente das gleiche Endergebnis erzielen, diese beiden CSS-Segmente "gleich" sind. Ihre Ausgabe ist dieselbe, aber ihr Quellcode ist nicht dieselbe. Wie im Allgemeinen können Sie eine beliebige Anzahl verschiedener Programme schreiben, die dieselbe Ausgabe erzeugen. Dann ist es wertvoll zu wissen (und Leuten zu sagen, die fragen), welches dieser "äquivalenten" Programme am einfachsten und am kürzesten zu schreiben scheint.
Panu Logic
und all dies sollte in einer Antwort geschrieben werden. Deshalb eignet sich diese Antwort eher als Kommentar als als ganz neue Antwort. Wir sollten alle äquivalenten Dinge zusammen präsentieren und sie nicht zu getrennten Merkmalen machen, was möglicherweise so klingt, als wären sie völlig anders, weil dies nicht der Fall ist [meine Meinung übrigens, keine Notwendigkeit, dem zuzustimmen oder das Gegenteil zu argumentieren]. Und ich spreche nicht von verschiedenen Programmen, die dieselbe Ausgabe erzeugen, es ist eine völlig andere Sache, da die Logik möglicherweise nicht dieselbe ist. Hier sprechen wir über die gleiche Eigenschaft und den gleichen Wert (wie i++sind die gleichen wie i+=1)
Temani Afif
4
Einfach die Elternausrichtung ändern :)
Versuchen Sie dies in den übergeordneten Eigenschaften:
Sie können text-align: centerdas übergeordnete Element verwenden und das imgin display: inline-block→ ändern. Es verhält sich daher wie ein Textelement und wird zentriert, wenn das übergeordnete Element eine Breite hat!
Das Zentrieren eines Nicht-Hintergrundbilds hängt davon ab, ob Sie das Bild als Inline- (Standardverhalten) oder Blockelement anzeigen möchten.
Fall von Inline
Wenn Sie das Standardverhalten der Anzeige-CSS-Eigenschaft des Bildes beibehalten möchten, müssen Sie Ihr Bild in ein anderes Blockelement einschließen, auf das Sie festlegen müssen text-align: center;
Fall von Block
Wenn Sie das Bild als eigenes Blockelement betrachten möchten, macht die text-alignEigenschaft keinen Sinn, und Sie sollten stattdessen Folgendes tun:
Ist die Eigenschaft text-align: center; eine gute Möglichkeit, ein Bild mit CSS zu zentrieren?
Ja und nein.
Ja, wenn das Bild das einzige Element in seinem Wrapper ist.
Nein, falls sich andere Elemente im Wrapper des Bildes befinden, da alle untergeordneten Elemente, die Geschwister des Bildes sind, die text-alignEigenschaft erben. Möglicherweise möchten Sie diesen Nebeneffekt nicht.
Eine weitere Möglichkeit zur Skalierung - Anzeige:
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 */}
meinst du margin: 0 auto;? Der Schlüssel ist Einstellen margin-leftund margin-rightzu auto. margin: 0 auto;ist nur eine Abkürzung dafür.
Web_Designer
1
@Web_Designer Ich habe versucht margin: 0 auto, margin: 0und margin: autokeiner arbeitete. Beachten Sie, dass im Chrome-Inspektor bei Verwendung margin: 0 autodie Eigenschaft mit einem Ausrufezeichen versehen ist invalid property value(oder was auch immer das bedeutet)
OverCoder
Ich denke, Sie meinten "Position: absolut"; anstelle von "display: absolute;"
WebDevDaniel
Vielen Dank an @WebDevDaniel für den Hinweis auf den Tippfehler. Übrigens, vielleicht möchten Sie relativelieber die Positionierung verwenden, als dass absolutebeide ziemlich gut funktionieren.
OverCoder
0
Ich habe festgestellt, dass ich ein Bild und einen Text in einem verwenden divkanntext-align:center den Text und das Bild auf einen Schlag ausrichten .
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>
Manchmal fügen wir den Inhalt und die Bilder direkt dem WordPress-Administrator innerhalb der Seiten hinzu. Wenn wir die Bilder in den Inhalt einfügen und diese Mitte ausrichten möchten. Der Code wird angezeigt als:
Antworten:
Dies funktioniert nicht, da die
text-align
Eigenschaft für Blockcontainer und nicht für Inline-Elemente gilt undimg
ein Inline-Element ist. Siehe die W3C-Spezifikation .Verwenden Sie stattdessen Folgendes:
quelle
text-align
dient zum Zentrieren von Text, wie der Name schon sagt. Für Blockelementemargin: 0 auto;
ist der empfohlene Ansatz.text-align
funktioniert genauso gut bei ihnen.Das funktioniert nicht immer ... wenn nicht, versuchen Sie:
quelle
Ich bin auf diesen Beitrag gestoßen und er hat bei mir funktioniert:
(Vertikale und horizontale Ausrichtung)
quelle
Eine andere Möglichkeit wäre, einen einschließenden Absatz zu zentrieren:
quelle
text-align: center
eine gute Möglichkeit ist, ein Bild zu zentrieren, und gab nicht an, dass die Eigenschaft Teil des img-Tags sein muss. Diese Antwort verwendet die betreffende Eigenschaft, um eine Lösung bereitzustellen (die funktioniert).Du kannst tun:
<center><img src="..." /></center>
quelle
<center>
in html5 nicht unterstützt, aber verdammt, es funktioniert.Tatsächlich besteht das einzige Problem mit Ihrem Code darin, dass das
text-align
Attribut für Text (ja, Bilder zählen als Text) innerhalb des Tags gilt. Sie möchten einspan
Tag um das Bild setzen und seinen Stil wie folgt festlegentext-align: center
:Das Bild wird zentriert. Als Antwort auf Ihre Frage ist dies die einfachste und narrensicherste Methode, um Bilder zu zentrieren, solange Sie daran denken, die Regel auf das Bild
span
(oderdiv
) des Bildes anzuwenden .quelle
span
Element istdisplay: inline;
standardmäßig aktiviert, daher tritt das gleiche Problem auf wie das Platzierentext-align: center;
auf demimg
selbst. Sie müssen dasspan
auf setzendisplay: block;
oder durch ein ersetzen, damitdiv
dies funktioniert.Es gibt drei Methoden zum Zentrieren eines Elements, die ich vorschlagen kann:
Verwenden der
text-align
EigenschaftVerwenden der
margin
EigenschaftVerwenden der
position
EigenschaftDie erste und die zweite Methode funktionieren nur, wenn das übergeordnete Element mindestens so breit wie das Bild ist. Wenn das Bild breiter als das übergeordnete Bild ist, bleibt das Bild nicht zentriert !!!
Aber: Die dritte Methode ist ein guter Weg dafür!
Hier ist ein Beispiel:
quelle
img
in einem gerechtfertigtendiv
in einemWebView
mit CSS - Injektion. Vielen Dank!Nur wenn Sie alte Versionen von Internet Explorer unterstützen müssen.
Der moderne Ansatz ist
margin: 0 auto
in Ihrem CSS zu tun .Beispiel hier: http://jsfiddle.net/bKRMY/
HTML:
CSS:
Das einzige Problem hierbei ist, dass die Breite des Absatzes mit der Breite des Bildes übereinstimmen muss . Wenn Sie dem Absatz keine Breite hinzufügen, funktioniert dies nicht, da 100% davon angenommen werden und Ihr Bild nach links ausgerichtet wird, es sei denn, Sie verwenden es
text-align:center
.Probieren Sie die Geige aus und experimentieren Sie damit, wenn Sie möchten.
quelle
quelle
Wenn Sie eine Klasse mit einem Bild verwenden, reicht Folgendes aus
Wenn es sich nur um ein Bild in einer bestimmten Klasse handelt, das Sie zentrieren möchten, reicht Folgendes aus:
quelle
img.class
oder auch eineimg.class
Version hinzufügen . Danke dafür.Auf dem Container mit dem Bild können Sie eine CSS 3- Flexbox verwenden, um das Bild sowohl vertikal als auch horizontal perfekt zu zentrieren .
Angenommen, Sie haben <div class = "container"> als Bildhalter:
Dann müssen Sie als CSS Folgendes verwenden:
Und dies wird all Ihre Inhalte in diesem Div perfekt zentrieren.
quelle
Die einfachste Lösung, die ich gefunden habe, war, dies meinem img-Element hinzuzufügen:
Es scheint, dass ich nicht "0" vor dem "Auto" hinzufügen muss, wie von anderen vorgeschlagen. Vielleicht ist das der richtige Weg, aber es funktioniert gut genug für meine Zwecke auch ohne die "0". Zumindest auf den neuesten Versionen von Firefox, Chrome und Edge .
quelle
auto auto auto auto
und0 auto
means0 auto 0 auto
... und standardmäßig ist auto für den unteren und oberen Rand0
so, dass das Hinzufügen von 0 oder nicht genau das gleiche ist, was Sie dazuauto
,auto auto
,auto auto auto
,auto auto auto auto
,0 auto 0
,0 auto
,0 auto 0 auto
, und so weiter ... denken Sie , jeder eine andere Antwort verdient? Das glaube ich nicht.i++
sind die gleichen wiei+=1
)Einfach die Elternausrichtung ändern :)
Versuchen Sie dies in den übergeordneten Eigenschaften:
quelle
Sie können
text-align: center
das übergeordnete Element verwenden und dasimg
indisplay: inline-block
→ ändern. Es verhält sich daher wie ein Textelement und wird zentriert, wenn das übergeordnete Element eine Breite hat!quelle
Ich würde ein div verwenden, um ein Bild zentriert auszurichten. Wie in:
quelle
Wenn Sie das Bild als Hintergrund festlegen möchten, habe ich eine Lösung:
quelle
Das Zentrieren eines Nicht-Hintergrundbilds hängt davon ab, ob Sie das Bild als Inline- (Standardverhalten) oder Blockelement anzeigen möchten.
Fall von Inline
Wenn Sie das Standardverhalten der Anzeige-CSS-Eigenschaft des Bildes beibehalten möchten, müssen Sie Ihr Bild in ein anderes Blockelement einschließen, auf das Sie festlegen müssen
text-align: center;
Fall von Block
Wenn Sie das Bild als eigenes Blockelement betrachten möchten, macht die
text-align
Eigenschaft keinen Sinn, und Sie sollten stattdessen Folgendes tun:Die Antwort auf Ihre Frage:
Ja und nein.
text-align
Eigenschaft erben. Möglicherweise möchten Sie diesen Nebeneffekt nicht.Verweise
quelle
Eine weitere Möglichkeit zur Skalierung - Anzeige:
quelle
Verwenden Sie dies für Ihr
img
CSS:quelle
display: block
mitmargin: 0
hat bei mir nicht funktioniert, auch nicht mit einemtext-align: center
Element umwickelt .Das ist meine Lösung:
translateX
wird von den meisten Browsern unterstütztquelle
margin: 0 auto;
? Der Schlüssel ist Einstellenmargin-left
undmargin-right
zuauto
.margin: 0 auto;
ist nur eine Abkürzung dafür.margin: 0 auto
,margin: 0
undmargin: auto
keiner arbeitete. Beachten Sie, dass im Chrome-Inspektor bei Verwendungmargin: 0 auto
die Eigenschaft mit einem Ausrufezeichen versehen istinvalid property value
(oder was auch immer das bedeutet)relative
lieber die Positionierung verwenden, als dassabsolute
beide ziemlich gut funktionieren.Ich habe festgestellt, dass ich ein Bild und einen Text in einem verwenden
div
kanntext-align:center
den Text und das Bild auf einen Schlag ausrichten .HTML:
CSS:
CodePen: https://codepen.io/artforlife/pen/MoBzrL?editors=1100
quelle
Manchmal fügen wir den Inhalt und die Bilder direkt dem WordPress-Administrator innerhalb der Seiten hinzu. Wenn wir die Bilder in den Inhalt einfügen und diese Mitte ausrichten möchten. Der Code wird angezeigt als:
In diesem Fall können Sie CSS-Inhalte wie folgt hinzufügen:
quelle
Verwenden:
Ich denke, dies ist der Weg, um ein Bild im Laravel-Framework zu zentrieren.
quelle
Dadurch wird das Bild sowohl vertikal als auch horizontal zentriert
quelle