我使用Next.js和next/image
来显示图像,但是CSS在里面不起作用。图像是SVG格式的,我把它放在了公共文件夹中。我使用Tailwind CSS和这个沿着。
<Image
className="mt-3"
data-testid="close-icon"
src="/CloseIcon.svg"
alt="Close Nav Bar"
height="24"
width="24"
/>
我不确定为什么它不工作,也没有在浏览器中反映出来。任何帮助都将不胜感激!
4条答案
按热度按时间ie3xauqp1#
在Next.js 12.2之前的版本
在旧的Next.js版本中,
next/image
组件的边距样式不起作用。更多细节请参见相关的GitHub discussion。在
next/image
组件的内部,<img>
元素和 Package 它的元素具有内联样式,这些样式覆盖了通过className
传递的某些值。作为一种解决方法,您可以添加一个 Package 元素,并对其应用
margin
样式。从Next.js 12.2下载
您可以使用
next/future/image
组件来代替。这个新组件呈现一个<img>
元素,默认情况下没有任何其他 Package 器,并且不再受 Package 器样式覆盖的约束。您可以在
next.config.js
中启用next/future/image
。来自下一个. js 13
next/future/image
组件已转换为next/image
。与next/future/image
一样,此组件呈现单个<img>
元素,并且可以直接使用className
/styles
设置样式。yi0zb3m42#
Juliomalves的回答是对的,但我更倾向于:
你还可以用一点小手段:
cqoc49vn3#
试试看:
有关
objectFit
Here的更多信息xzabzqsa4#
将图像组件 Package 在
div
中有助于解决这个问题。我可以将类名应用于div
,一切都正常工作。