【发布时间】:2021-01-04 14:47:58
【问题描述】:
我正在努力使用 Gatsby-image 来为不同的分辨率提供正确的图像尺寸。我有一个尺寸为 1920x367(宽 x 高)的图像,当窗口尺寸较小(例如移动设备)时,问题是可见的,因为 gatsy-image 使用 490x92 的图像来覆盖 437x354 的容器。
Here 窗口大时可以看到图像。 Here 当窗口大小较小时。
GraphQL 查询:
configHowWeWork: file(relativePath: { eq: "howwework/howwework-header.jpg" }) {
childImageSharp {
fluid(maxWidth: 1920, maxHeight: 367) {
...GatsbyImageSharpFluid_withWebp
}
}
}
盖茨比图片:
<div className="intro intro-page intro-container">
{configHowWeWork.childImageSharp.fluid && (
<Img
className="intro-background"
fluid={configHowWeWork.childImageSharp.fluid}
alt="alt"
/>
)}
</div>
相关 CSS:
.intro-container {
position: relative;
}
.intro-background {
position: absolute!important;
height: 100%;
width: 100%;
margin: 0;
padding: 0;
left: 0;
top: 0;
z-index: 0;
overflow: hidden;
}
问题:如何避免请求尺寸为 490x92(相同的初始纵横比)的图像,而是提供可以填充 437x354 的图像(我想要的是裁剪或剪辑,但不缩放in) 没有拉伸高度。
我已经尝试过的:
- 我尝试在 gatsby 查询中使用 FILL 来克服纵横比限制,但没有成功。
- 使用presentationSize。
谢谢你的回答。
编辑:找到的唯一一种解决方案是创建尺寸为max(width, height) 的方形图像,但在我的情况下始终是宽度。通过这种方式,我可以通过低分辨率和高分辨率(例如移动和桌面)获得良好的质量,但我浪费了太多资源:
- 生成的桌面分辨率图像为 1920x1920,但容器尺寸为 1920x367。
- 移动端的分辨率并没有那么不平衡,但仍然需要更大的高度。
我确信我遗漏了一些东西,因为仅仅创建一个响应式的宽英雄图像并不难。
编辑 2:如果我在 Firefox 中使用响应式设计模式切换到移动分辨率,我无法理解为什么图像质量很好,但如果我使用与以前的移动设备相当的分辨率,质量就不好,但是没有响应式设计模式。
【问题讨论】:
标签: gatsby gatsby-image gatsby-plugin