You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:NextJS <Image>组件在Flex列中覆盖其他内容的解决方法

Next.js 组件在Flex列布局中覆盖其他内容的问题

我在使用Next.js的<Image>组件时,遇到了图片渲染在Flex列布局中其他内容上方的问题;但使用React原生<img>组件时,显示效果符合预期。

以下是相关代码:

import React from "react";
import Image from "next/image";
import { ProjectType } from "../types/projectsTypes";

interface Props {
  project: ProjectType;
}

function ProjectSummary(props: Props) {
  function addHashTags(project: ProjectType): React.ReactNode {
    return (
      <>
        {project.summaryHashtags!.map((hashtag) => (
          <span
            className="inline-block pr-3 text-sm font-semibold text-sky-400"
            key={hashtag}
          >
            #{hashtag}
          </span>
        ))}
      </>
    );
  }

  return (
    <>
      <div
        tabIndex={0}
        id="p1"
        role="button"
        className="project-card relative flex max-w-sm flex-col overflow-hidden rounded-lg bg-slate-900 shadow-lg shadow-slate-600 transition delay-100 ease-out hover:-translate-y-1 hover:shadow-sky-400 focus:shadow-lg focus:shadow-highlight focus:outline-none"
      >
        {/* <img
          className="w-full"
          src={"https:" + props.project.summaryImageURL}
          alt=""
        /> */}
        <Image
          className="object-contain"
          src={"https:" + props.project.summaryImageURL}
          alt=""
          fill={true}
          sizes="(max-width: 768px) 100vw, (max-width: 1200px) 33vw"
        />
        <h3
          className="mx-4 pt-4 pb-1 text-xl font-bold text-sky-400"
          aria-label="Pocket open access project."
        >
          {props.project.projectTitle}
        </h3>
        <p className="mx-4 mb-4 text-base text-gray-400">
          {props.project.summaryDescription}
        </p>
        <div
          aria-label={props.project.summaryAriaHashtagsDescription}
          className="mx-4 mt-auto mb-4"
        >
          {props.project.summaryHashtags != undefined
            ? addHashTags(props.project)
            : null}
        </div>
      </div>
    </>
  );
}

export default ProjectSummary;

使用<Image>组件时,卡片显示效果:
图片覆盖其他内容

使用React原生<img>组件时,卡片显示符合预期:
图片位于卡片顶部,内容在下方

请问各位有什么解决该问题的思路吗?

谢谢,
Luke


内容的提问来源于stack exchange,提问作者Luke

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 10:17:46