【问题标题】:responsive gatsby image in flexbox containerflexbox容器中的响应式盖茨比图像
【发布时间】:2020-12-11 15:11:52
【问题描述】:

我正在努力让 gatsby-image 以一种响应式的方式与 flexbox 一起工作:

我希望我的所有图片都具有相同的大小和高度,并且它们应该能够响应移动设备和桌面设备。

这是 gatsby 图像的用例吗?

我可以让它显示的唯一方法是添加一个固定的minWidth

<div className={styles.header}>
  <GatsbyImage className={styles.image} fluid={image.fluid} style={{ minWidth: '100px' }} />

我尝试将graphQl 查询更新为

          fluid(maxWidth: 100) {
            ...GatsbyContentfulFluid
          }
    

没有minWidth 只有maxWidth。

我显然完全不知道如何使用它。

如何在 flexbox 容器中使用 gatsby-image,并且我希望所有图像的大小和高度相同。

【问题讨论】:

标签: gatsby gatsby-image


【解决方案1】:

我没有将 Gatsby Image 与 Contentful 一起使用,但通常对于 Gatsby Image,我将每个图像组件包装在一个 div 中并以这种方式控制大小。

import Img from "gatsby-image"

...

<div className="img-wrap">
    <Img fluid={image.childImageSharp.fluid} style={{width: "100%"}} />
</div>

//CSS

.img-wrap {
    width: 15vw;
}

我的 GraphQL 查询中的 'childImageSharp' 位正好符合标准的 Gatsby 文档;它可能与您使用 Contentful 的情况无关。

【讨论】:

  • 谢谢,如果我必须将它包装在一个 div 中并给它我自己的尺寸,那感觉就像是在违背目的。我以为我可以写一个 graphql 查询。
  • @dagda1 你不必那样做;这只是一种蛮力的做法。我已经看到 Gatsby Image 的一些非常不一致的行为,所以这就是我这样做的原因。
  • 如果没有在容器上设置宽度,图像不会显示
猜你喜欢
  • 2021-07-30
  • 2020-04-20
  • 2021-04-25
  • 1970-01-01
  • 2020-12-16
  • 2018-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多