这里的初学者,我不完全理解gatsby-image。我有一个 Gatsby 模板,它使用 graphql 从内容中获取标题图像。我希望标题图像是流畅的,但我希望它具有max-width
图像的原始大小。所以说如果jpg最初是800px,我不希望它超出这个范围。我可以看到 graphql 位有一个 maxWidth 属性,但是每个图像都有不同的最大宽度。我想我必须改变它生成 srcset 的方式,但不确定如何。
在我的模板中,相关位是:
export const query = graphql`
query($slug: String!) {
contentfulWork(slug: { eq: $slug }) {
title
heroImage {
title
fluid(maxWidth: 1800) {
...GatsbyContentfulFluid_noBase64
}
file {
url
contentType
}
}
}
}
`
并在回报
<Img
fluid={props.data.contentfulWork.heroImage.fluid}
alt={props.data.contentfulWork.heroImage.title}
/>
输出的代码如下所示:
<picture>
<source srcset="//myimage.gif?w=450&h=298&q=50 450w,
//myimage.gif?w=900&h=596&q=50 900w,
//myimage.gif?w=940&h=622&q=50 940w"
sizes="(max-width: 1800px) 100vw, 1800px">
<img sizes="(max-width: 1800px) 100vw, 1800px"
srcset="//myimage.gif?w=450&h=298&q=50 450w,
//myimage.gif?w=900&h=596&q=50 900w,
//myimage.gif?w=940&h=622&q=50 940w"
src="//myimage.gif?w=1800&q=50"
alt="mygif" loading="lazy"
style="position: absolute; top: 0px; left: 0px;
width: 100%; height: 100%;
object-fit: cover; object-position: center center;
opacity: 1;"
>
</picture>
非常感谢任何帮助,谢谢。