Text über einem Bild zentrieren

Wer einen Text über einem Bild zentrieren will, kann dies auf verschiedene Weise bewerkstelligen. Im Folgenden werden drei Lösungen vorgestellt:

  • CSS-Grid
  • Absolute Positionierung und CSS-Transformationen
  • Flexbox

Die für die folgende Demo verwendeten Codes samt Bildern können Sie hier downloaden:

Im Stylesheet der Datei index.html werden für drei sections die jeweils erforderlichen CSS-Codes festgelegt. Für die erste section (sec-1) werden die benötigten Grid-Styleelemente definiert, für die zweite section (sec-2) die notwendigen Positionierungs- und Transformations-Codes und für die dritte section (sec-3) die gebotenen Flexbox-Styles.

In der index.html werden drei sections festgelegt und jeder dieser sections die für sie geltenden Styles zugeordnet.

Anschließend wird präsentiert, wie der Webcode optisch aussieht.

CSS-Code

/* ################ Methode 1: Grid ################ */ .sec-1 { display: grid; place-items: center; /* Zentriert sowohl horizontal als auch vertikal */ max-width: 50%; /* Bild mittig margin-left: auto; margin-right: auto; */ margin-bottom: 30px; } .sec-1 img { grid-area: 1 / 1; /* Legt das Bild in die erste Zelle */ width: 100%; } .text-overlay-sec-1 { grid-area: 1 / 1; /* Legt den Text in dieselbe Zelle wie das Bild */ z-index: 1; /* Stellt sicher, dass der Text über dem Bild liegt */ color: white; text-align: center; font-size: calc(12px + (18 - 12) * ((100vw - 320px) / (1600 - 320))); } /* ################ Methode 2: Absolute Positionierung und CSS-Transformationen ################ */ .sec-2 { position: relative; display: block; /* oder 'block' je nach Bedarf */ max-width: 50%; margin-bottom: 30px; /* Bild mittig margin-left: auto; margin-right: auto; */ } .sec-2 img { display: block; width: 100%; /* oder eine feste Breite */ height: auto; } .text-overlay-sec-2 { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: white; /* Textfarbe */ font-size: calc(12px + (18 - 12) * ((100vw - 320px) / (1600 - 320))); text-align: center; } /* ################ Methode 3: Flexbox ################ */ .sec-3 { display: flex; max-width: 50%; } .sec-3 img { width: 100%; } figure { position: relative; margin: 0; padding: 0; } span { display: flex; align-items: center; justify-content: center; text-align:center; position: absolute; top: 0; left: 0; width: 100%; height: 100%; font-size: calc(12px + (18 - 12) * ((100vw - 320px) / (1600 - 320))); color: #fff; } /* ################ Media Queries ################ */ @media screen and (max-width: 768px) { .sec-1, .sec-2, .sec-3 { max-width: 100%; } }

HTML-Code

<section class="sec-1"> <img src="stadt-1.jpg" alt="Stadt"> <div class="text-overlay-sec-1">Lorem ipsum dolor sit amet, consetetur<br> sadipscing elitr, sed diam nonumy eirmod</div> </section> <section class="sec-2"> <img src="stadt-2.jpg" alt="Stadt"> <div class="text-overlay-sec-2">Lorem ipsum dolor sit amet, consetetur<br> sadipscing elitr, sed diam nonumy eirmod</div> </section> <section class="sec-3"> <figure> <img src="stadt-3.jpg" alt="Stadt"> <span>Lorem ipsum dolor sit amet, consetetur<br> elitr, sed diam nonumy eirmod</span> </figure> </section>

Visuelle Darstellung der Webcodes

CSS-Grid:

Stadt

Absolute Positionierung und CSS-Transformationen

Stadt

Flexbox

Stadt