我的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
)?
答案 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);
}
}
}