¿Cómo se hace un diseño con imágenes en un lado de una página que coinciden con los párrafos del otro lado? | Programar Plus

Recibí esta pregunta exacta en un correo electrónico el otro día, y pensé que sería una buena publicación de blog debido a lo maravillosamente satisfactorio que es hacer esto en CSS en estos días. Además, podemos espolvorearlo sobre la marcha.

En cuanto a HTML, estoy pensando en imagen, texto, imagen, texto, etc.

<img src="https://css-tricks.com/how-do-you-make-a-layout-with-pictures-down-one-side-of-a-page-matched-up-with-paragraphs-on-the-other-side/..." alt="https://css-tricks.com/how-do-you-make-a-layout-with-pictures-down-one-side-of-a-page-matched-up-with-paragraphs-on-the-other-side/..." height="" width="" />
<p>Text text text...</p>

<img src="https://css-tricks.com/how-do-you-make-a-layout-with-pictures-down-one-side-of-a-page-matched-up-with-paragraphs-on-the-other-side/..." alt="https://css-tricks.com/how-do-you-make-a-layout-with-pictures-down-one-side-of-a-page-matched-up-with-paragraphs-on-the-other-side/..." height="" width="" />
<p>Text text text...</p>

<img src="https://css-tricks.com/how-do-you-make-a-layout-with-pictures-down-one-side-of-a-page-matched-up-with-paragraphs-on-the-other-side/..." alt="https://css-tricks.com/how-do-you-make-a-layout-with-pictures-down-one-side-of-a-page-matched-up-with-paragraphs-on-the-other-side/..." height="" width="" />
<p>Text text text...</p>

Si ese fuera todo nuestro cuerpo en un documento HTML, la respuesta a la pregunta en el título de la publicación del blog es literalmente dos líneas de CSS:

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

Se verá algo así …

No es bonito, pero hicimos el trabajo muy rápido.

Muy guay. Gracias CSS. Pero limpiemoslo. Asegurémonos de que haya un espacio, establezcamos el tipo predeterminado y reinemos en el diseño.

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;
}

Quiero decir … enviarlo, ¿verdad? Cerca, pero tal vez podamos agregar un estilo móvil rápido.

@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, AHORA envíalo!