kulturbanause Blog

Responsive Design, WordPress, Konzeption, HTML, CSS, JS & UX/UI …

Bildunterschriften mit CSS immer perfekt ausrichten

Die Gestaltung von Bildunterschriften kann mitunter lästig werden. Es ist schwierig zu entscheiden ob der Text zentriert oder linksbündig unter dem Bild angezeigt werden soll, da die Textmenge oft stark variiert. Zentrierte Bildunterschriften sehen bei kurzen Texten gut aus. Linksbündig passt besser wenn die Bildunterschrift mehrere Zeilen umfasst. Was also tun?

In diesem Beitrag findet ihr ein CSS-Snippet, dass automatisch dafür sorgt, dass kurze Bildunterschriften zentriert werden, und mehrzeilige Bildunterschriften linksbündig ausgerichtet werden.

Workshops und Seminare von kulturbanause

Unsere Berlin-Termine für Ende 2017 sind online!

Jetzt Tickets sichern!

Lange Bildunterschriften automatisch linksbündig anzeigen

Der Trick ist denkbar einfach. Ein Bild mit Bildunterschrift besteht i.d.R. aus dem Container-Element <figure>, sowie den enthaltenen Elementen <img> und <figcaption>.

<figure>
  <img src="bild.png" alt /> 
  <figcaption>Hier steht eine sehr lange Bildunterschrift. Sie ist so lang, dass Sie in zwei Zeilen läuft und daher linksbündig angezeigt wird. </figcaption>
</figure>

Innerhalb von <figure> wird der Text nun zunächst zentriert.

figure {
  text-align: center; 
}

Anschließend wird innerhalb der Bildunterschrift <figcaption> der Text linksbündig ausgerichtet und das Element auf display:inline-block; gesetzt.

figcaption {
  display: inline-block; 
  text-align: left;
}

Das war auch schon alles: Wenn die Bildunterschrift kürzer ist als das Bild breit ist, wird <figcaption> aufgrund des Inline-Block-Verhaltens innerhalb von <figure> zentriert. Der in <figcaption> enthaltene Text ist natürlich immer noch linksbündig, doch das sieht man nicht.

Die Bildunterschrift hat einen gelben Hintergrund erhalten, damit die Positionierung besser erkennbar ist
Die Bildunterschrift hat einen gelben Hintergrund erhalten, damit die Positionierung besser erkennbar ist

Erst wenn die Bildunterschrift so lang wird, dass das <figcaption>-Element über die volle Breite von <figure> läuft, sieht man, dass der Text linksbündig ist. Mehrzeilige Bildbeschreibungen werden daher automatisch linksbündig angezeigt.

Beispiel anschauen

Links / Quellen:

Jetzt bist du gefragt!

Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Du kannst diesen Beitrag natürlich auch weiterempfehlen. Wir sind dir für jede Unterstützung dankbar!

Das könnte dich auch interessieren

7 Kommentare

  1. Marko

    Verfasst am 21. April 2016 um 21:25 Uhr.

    is bei mir aber nicht so :D

    http://screencloud.net/v/5SMK liegt aber an der grösse von meinem Bildschirm :P

  2. Franz Meyer

    Verfasst am 23. April 2016 um 11:23 Uhr.

    Habe mich über diesen Artikel gefreut, denn ich wollte schon länger wissen, wie so etwas und saniert. Klappt das Ganze aber auch in einem alten Internet Explorer? Oder gibt es eine Möglichkeit, das ganze so zu machen dass es auch in einem alten Internet Explorer, den ja leider immer noch einige verwenden, funktioniert?

    • Jonas Hellwig

      Verfasst am 25. April 2016 um 8:27 Uhr.

      Ich wüsste nicht, warum ein alter IE die Technik nicht beherrschen sollte. Wenn der Browser display:inline-block; versteht, sollte es kein Problem sein. Der Support dafür ist sehr gut. Siehe caniuse.com

      • Franz Meyer

        Verfasst am 25. April 2016 um 14:23 Uhr.

        Danke für deine Antwort!

  3. Timo

    Verfasst am 27. April 2016 um 9:25 Uhr.

    Elegant und einfach, sehr schön. Ich mag euren Blog, für genau solche kleinen, nützlichen Schnipsel. :-)

  4. Franz Meyer

    Verfasst am 9. Mai 2016 um 10:10 Uhr.

    Wie macht man es, dass man ein Bild, welches float rechts hat, mit einer Bildunterschrift versieht? Habe das nicht hinbekommen. Um das Bild soll ein Text fließen.

Kommentar verfassen

Dieser Blog lebt vom Feedback der Besucher! Also los, mach mit!
Bitte habe Verständnis dafür, dass Kommentare die mit dem Inhalt dieses Beitrags nichts zu tun haben, gelöscht werden.