<ul class="rejilla">

  <li>
    <a href="/enlace-producto-1" rel="nofollow" target="_blank">
    <img src="/url-imagen-1" width="200" height="200" alt="Nombre de ejemplo 1" />
    <h3>Nombre de ejemplo 1</h3>
    <p>14.39 €</p>
    </a>
  </li>

  <li>
    <a href="/enlace-producto-2" rel="nofollow" target="_blank">
      <img src="/url-imagen-2" width="200" height="200" alt="Nombre de ejemplo 2" />
      <h3>Nombre de ejemplo 2</h3>
      <p>37.95 €</p>
    </a>
  </li>

</ul>
.rejilla * {
  box-sizing: border-box; /* para que los padding y border no se sumen al width */
}
.rejilla {
  display: flex; /* esto es lo que lo convierte en una rejilla (unidimensional) */
  flex-wrap: wrap; /* para que salte a diferentes filas si el ancho no da */
  justify-content: center; /* todos los elementos centradicos, especialmente en la última fila (por esto prefiero usar display flex y no grid) */
  text-align: center; /* todo el contenido centradico */
  list-style: none; /* quita el estilo lista */
  padding-left: 0; /* quita el margen interior izquierdo predeterminado de las listas */
}
.rejilla > li {
  width: 100%;
}
@media (min-width: 425px) { /* para esta resolución mínima */
  .rejilla > li {
    width: 50%; /* 2 columnas a partir de la resolución indicada */
  }
}
@media (min-width: 768px) { /* para esta resolución mínima */
  .rejilla > li {
    width: 33.33333333%; /* 3 columnas a partir de la resolución indicada */
  }
}
@media (min-width: 992px) { /* para esta resolución mínima */
  .rejilla > li {
    width: 25%; /* 4 columnas a partir de la resolución indicada */
  }
}
.rejilla a {
  display: block; /* para que el enlace abarque toda la "celda" del producto */
  padding: 15px;
}
.rejilla a:hover {
  box-shadow: 0 0 0 2px #ccc; /* efecto para remarcar productos al pasar el cursor por encima */
}
.rejilla img { /* para que las imágenes se autoajusten si la rejilla es más pequeña */
  max-width: 100%;
  height: auto;
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.