Menu

Bild zentrieren in HTML und CSS

Ein <img> ist inline und wird deshalb wie Text zentriert: mit text-align: center am Elternelement. Oder du machst es zu einem Block mit margin: 0 auto, oder du zentrierst es mit Flexbox oder Grid, auch vertikal. Jede Methode läuft live und misst das Ergebnis.

Diese Seite enthält ausführbare Editoren - bearbeiten, ausführen und Ausgabe sofort sehen.

Die schnelle Antwort: text-align am Elternelement

Ein <img> ist ein Inline-Element: Es steht in einer Textzeile wie ein Wort. Also zentrierst du es genauso wie Text, mit text-align: center am Elternelement:

Der Style gehört an das div, nicht an das Bild. text-align: center am <img> selbst bewirkt nichts, weil das Bild keinen Text enthält, der ausgerichtet werden könnte.

Methode 2: display block und margin auto

Willst du lieber das Bild selbst stylen, mach es zu einem Block und gib ihm automatische seitliche Margins. Der freie Platz wird gleichmäßig auf beide Seiten verteilt:

Das graue Bild hat margin: 0 auto, bleibt aber am Zeilenanfang: Auto-Margins bewirken an einem Inline-Element nichts. display: block ist das fehlende Stück. max-width: 100% mit height: auto verhindert, dass das Bild auf einem schmalen Bildschirm überläuft, und erhält seine Proportionen.

Methode 3: Flexbox oder Grid, auch vertikal

Um ein Bild in einer Box in beide Richtungen zu zentrieren, gib der Box eine Höhe und zentriere ihren Inhalt mit Grid oder Flexbox:

Das Flexbox-Gegenstück ist display: flex; justify-content: center; align-items: center;. In beiden Fällen braucht die Box eine Höhe, die größer als das Bild ist, sonst gibt es keinen Platz zum Zentrieren. Dieselben Methoden zentrieren jedes Element; die Seite div zentrieren vergleicht sie alle.

Ein Bild mit Bildunterschrift zentrieren

Ein Foto mit Bildunterschrift gehört in ein <figure>. Zentriere den Inhalt des figure, und Bild und Bildunterschrift stehen gemeinsam in einer Linie:

Mehrere Bilder in einer zentrierten Reihe

Eine Reihe von Logos oder Vorschaubildern ist ein Fall für Flexbox. justify-content: center zentriert die Gruppe, gap setzt die Abstände, und flex-wrap lässt sie auf kleinen Bildschirmen umbrechen, während sie zentriert bleibt:

Welche Methode du nimmst

SituationNimm
Ein Bild in einem Absatz oder einem einfachen Blocktext-align: center am Elternelement
Du kannst nur das Bild stylendisplay: block; margin: 0 auto;
In beide Richtungen in einer Box zentrierenGrid place-items: center (oder Flexbox) an der Box
Eine Reihe von BildernFlexbox mit justify-content: center
Ein Bild mit Bildunterschrift<figure> mit text-align: center
Ein Hintergrundbild, kein Inhaltbackground-position: center, siehe background-image

Die alten Wege, und warum nicht

In alten Tutorials findest du noch diese:

<!-- obsolete: do not use -->
<center><img src="logo.png" alt="Logo"></center>
<img src="logo.png" alt="Logo" align="center">

<center> und das Attribut align wurden aus HTML entfernt. Browser stellen <center> aus Gründen der Abwärtskompatibilität noch dar, und align="center" an einem Bild zentriert es nicht einmal horizontal: Browser behandeln es als vertikale Ausrichtung in der Zeile. Nimm eine der CSS-Methoden oben.

Häufige Fehler

  • text-align: center am <img>. Setz es an das Elternelement.
  • margin: 0 auto an einem Inline-Bild. Füge display: block hinzu.
  • Vertikal zentrieren ohne Höhe am Elternelement. Die Box schrumpft auf das Bild, und es bleibt kein Platz zum Zentrieren.
  • float: center. Diesen Wert gibt es nicht. Floats gehen nur an eine Seite.
  • alt vergessen. Auch ein zentriertes Bild braucht einen Alternativtext; nimm alt="" nur für rein dekorative Bilder.
  • Ein verzerrtes Bild. Setzt du width und height in CSS auf Werte mit anderem Seitenverhältnis, wird es verzerrt. Setz nur einen Wert und nimm height: auto, oder ergänze object-fit: cover.

Häufig gestellte Fragen

Wie zentriere ich ein Bild in HTML?

Setz text-align: center an das Element, das es enthält, zum Beispiel <p style="text-align: center;"><img src="logo.png" alt="Logo"></p>. Ein Bild ist standardmäßig inline und wird deshalb wie ein Wort im Text zentriert.

Wie zentriere ich ein Bild mit margin auto?

Mach das Bild zuerst zu einem Block: img { display: block; margin: 0 auto; }. Auto-Margins zentrieren keine Inline-Elemente, und ein Bild ist inline, bis du das änderst.

Wie zentriere ich ein Bild vertikal und horizontal?

Mach seinen Container zu einem Grid (oder Flexbox) mit einer Höhe: .box { display: grid; place-items: center; height: 300px; }. Das Bild sitzt dann in der Mitte der Box.

Kann ich den Tag <center> oder align="center" nutzen, um ein Bild zu zentrieren?

Nein. <center> und das Attribut align an <img> sind in HTML5 veraltet. Browser stellen <center> für alte Seiten noch dar, aber align="center" an einem Bild richtet es vertikal in der Zeile aus, nicht horizontal. Nimm CSS.

Warum ist unter meinem zentrierten Bild eine kleine Lücke?

Ein Inline-Bild sitzt auf der Grundlinie des Textes und lässt darunter Platz für Unterlängen von Buchstaben. Setz display: block am Bild oder vertical-align: middle, und die Lücke verschwindet.

Coddy programming languages illustration

Lerne mit Coddy zu programmieren

LOS GEHT'S