【发布时间】:2022-01-15 08:25:19
【问题描述】:
我想布置带有flex-wrap 的 Next.js 图像,其高度固定,但宽度取决于图像。我正在使用顺风。
我已经让它在谷歌浏览器上完美运行。
但是,当我在 Safari 上查看时,它似乎在图像周围创建了额外的空间。如何解决 Safari 上的 Flex 问题,使其像 Google Chrome 一样显示?
索引.js
<div className="grid grid-cols-2 gap-8 md:flex md:flex-1 md:flex-wrap md:flex-row">
<div className="relative h-96 bg-red-100">
<div className="h-full ck-product-image-container">
<Image className="_image" src="" layout="fill" objectFit="contain" />
</div>
</div>
<div className="relative h-96 bg-red-100">
<div className="h-full ck-product-image-container">
<Image className="_image" src="" layout="fill" objectFit="contain" />
</div>
</div>
<div className="relative h-96 bg-red-100">
<div className="h-full ck-product-image-container">
<Image className="_image" src="" layout="fill" objectFit="contain" />
</div>
</div>
<div className="relative h-96 bg-red-100">
<div className="h-full ck-product-image-container">
<Image className="_image" src="" layout="fill" objectFit="contain" />
</div>
</div>
<div className="relative h-96 bg-red-100">
<div className="h-full ck-product-image-container">
<Image className="_image" src="" layout="fill" objectFit="contain" />
</div>
</div>
<div className="relative h-96 bg-red-100">
<div className="h-full ck-product-image-container">
<Image className="_image" src="" layout="fill" objectFit="contain" />
</div>
</div>
</div>
CSS 主要在顺风中处理,但是我不得不写一些来定位 Next.js Image 属性。
app.css
.ck-product-image-container > span {
position: static !important;
height: 100% !important;
width: intrinsic;
}
【问题讨论】:
-
你能分享实际编译的标记吗?您正在共享反应代码,但尚不清楚
layout="fill"和objectFit="contain"添加了哪些 CSS 属性(我可以猜测,但您应该在问题中真正展示它)。您的标记中也没有<span>元素,但我想它们是由您的<Image>组件呈现的。了解如何创建minimal reproducible example。 -
添加
autoprefixer可能会解决您的问题。 tailwindcss.com/docs/browser-support#vendor-prefixes -
您可以尝试将
flex-none添加到每个具有红色背景的<div>标签中。
标签: css next.js tailwind-css