如何在媒体查询中使用API​​返回的图像作为背景图像?

时间:2018-11-26 03:17:51

标签: javascript css reactjs sass media-queries

我的style.scss中有这个

.myComponent {

    &__pic {

        // some other styles

        @media (max-width: 767px),
          (-webkit-min-device-pixel-ratio: 2),
          (min-resolution: 192dpi) {
          background-image: url({this needs to come from API});
        }

    }

}

如果它只是默认的背景图片,我知道该怎么做:

<div className="col-md-8">
    <div className="myComponent__pic" style={{
        backgroundImage: `url(${someObject.someImage})`
    }} />
</div>

但是如何在样式表之外指定@media样式,以便可以为它提供来自API的图像(someObject.someImage2x)?

1 个答案:

答案 0 :(得分:2)

您可能要使用CSS变量作为解决方法。

let imageQuery = {
  --backgroundImage-2x: `url(${someObject.someImage2x})`,
  --backgroundImage-1x: `url(${someObject.someImage1x})`
}

<div className="col-md-8">
    <div className="myComponent__pic" style={imageQuery} />
</div>
.myComponent {

    &__pic {
        --backgroundImage-2x: "";
        --backgroundImage-1x: "";
        // some other styles
        
        background-image: var(--backgroundImage-1x);
        
        @media (max-width: 767px),
          (-webkit-min-device-pixel-ratio: 2),
          (min-resolution: 192dpi) {
          background-image: var(--backgroundImage-2x);
        }

    }

}