Wie erstellt man ein Layout mit Bildern auf einer Seite und Absätzen auf der anderen Seite?

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Diese exakte Frage erhielt ich neulich per E-Mail, und ich dachte, sie würde sich gut für einen Blogbeitrag eignen, da es heutzutage wunderbar befriedigend ist, dies in CSS zu tun. Außerdem können wir dabei nach und nach Verfeinerungen hinzufügen.

Was das HTML angeht, denke ich an Bild, Text, Bild, Text usw.

<img src="..." alt="..." height="" width="" />
<p>Text text text...</p>

<img src="..." alt="..." height="" width="" />
<p>Text text text...</p>

<img src="..." alt="..." height="" width="" />
<p>Text text text...</p>

Wenn das unser gesamter Körper in einem HTML-Dokument wäre, **lautet die Antwort auf die Frage im Titel des Blogbeitrags buchstäblich zwei Zeilen CSS**

body {
  display: grid;
  grid-template-columns: min-content 1fr;
}

Es wird ungefähr so aussehen...

Nicht schön, aber wir haben die Arbeit sehr schnell erledigt.

So cool. Danke, CSS. Aber lassen Sie uns das aufräumen. Stellen wir sicher, dass ein Abstand vorhanden ist, legen wir den Standardtyp fest und zügeln wir das Layout.

body {
  display: grid;
  padding: 2rem;
  grid-template-columns: 300px 1fr;
  gap: 1rem;
  align-items: center;
  max-width: 800px;
  margin: 0 auto;
  font: 500 100%/1.5 system-ui;
}
img {
  max-width: 100%;
  height: auto;
}

Ich meine... liefern, richtig? Knapp daneben, aber vielleicht fügen wir nur schnell einen mobilen Stil hinzu.

@media (max-width: 650px) {
  body {
    display: block;
    font-size: 80%;
  }
  p {
    position: relative;
    margin: -3rem 0 2rem 1rem;
    padding: 1rem;
    background: rgba(white, 0.8);
  }
}

OK, JETZT liefern!