Использование компонента Nextjs Image с разными размерами изображений

Я пытаюсь использовать компонент Next.js Image с изображениями уникального размера. В их примере говорится, что изображение будет растягиваться до ширины и высоты родительского div. Я пробовал их обернуть, но не знаю, как учесть динамические размеры изображений. Я хочу иметь заданную ширину и высоту, которые можно отрегулировать для каждой соответствующей пропорции. TIA.

Вот мой код (изображения поступают из массива) - поскольку у меня нет установленной высоты, на странице ничего не отображается. Если я использую попутный ветер h-auto он по-прежнему не отображает:

      <div className="w-screen h-screen">
  {allImages.allImages.map((image, i) => {
    return (
      <div className="relative w-100 md:w-5/6 lg:w-7/12" key={image}>
        <Image priority src={`/${image}`} layout="fill" objectFit="cover" />
      </div>
  )})}
</div>

2 ответа

Я нашел решение в этой статье , которое, кажется, работает.

      <div className={'image-container'}>
  <Image src={path} layout="fill" className={'image'} />
</div>

СКСС

      .image-container {
  width: 100%;

  > div {
    position: unset !important;
  }

  .image {
    object-fit: contain;
    width: 100% !important;
    position: relative !important;
    height: unset !important;
  }
}

Я завернул это в компонент с именем <ResponsiveImage />. Вы можете попробовать другие правила в оболочке, например position: relative.

Вы можете использовать эти реквизиты в теге изображения,

      <div className="div-class">
   <Image src={imageLink} layout="fill" objectFit="cover" />
</div>

и оберните тег изображения в div, как указано выше. Теперь вы можете указать ширину и высоту div с помощью медиа-запросов, и изображение будет использовать это пространство.

Другие вопросы по тегам