html - 响应式背景图像(为性能提供最佳尺寸)
问题描述
在以下 CSS 代码中,是否会同时获取两个图像?
.class {
background-image: url(https://img.com/small);
@screen (min-width: 700px) {
background-image: url(https://img.com/big);
}
}
我们不想为移动设备提供大图像。我们有srcset/sizes
,但这不适用于背景图像。我们有image-set()
,但这似乎关心像素密度,而不是屏幕宽度(我认为)。你如何处理这个问题?
解决方案
不知道为什么我没有按照@TJ 的建议检查网络选项卡。事实证明(至少在 Chrome 中)它们并没有全部被获取,并且当您调整屏幕大小时,会获取新图像。
我想我会使用这个 postcss mixin,但如果有人有其他方法,我仍然会感兴趣。
@define-mixin responsive-bg-img $src {
background-image: url('$(src)?nf_resize=fit&w=smallpx');
@screen sm {
background-image: url('$(src)?nf_resize=fit&w=mediumpx');
}
@screen md {
background-image: url('$(src)?nf_resize=fit&w=largepx');
}
}
.responsive-bg-img-wine {
@mixin responsive-bg-img ../assets/lfs/wine.png;
}
推荐阅读
- elasticsearch - 报告 Kibana
- spring - 使调度程序特定于应用程序而不是特定于服务器
- amazon-web-services - 如何永久更改我的 aws cloudwatch 仪表板的时间范围?
- google-sheets - 如何使用下拉菜单中的数据和其他两个条件来填充表格?
- node.js - 从 Lambda 将消息发布到特定的 aws-iot-core 设备
- python - 在 Google Cloud Platform 上创建的虚拟机的 SSH 隧道不起作用
- python - 我可以定义一个函数来在类中创建 Tkinter 小部件吗?
- java - 如何修复“绝对 uri:http://java.sun.com/portlet 无法在 web.xml 或随此应用程序部署的 jar 文件中解析”
- r - 错误:无法投射
> 到 在 tidyr 中使用新的 pivot_wider() 函数后 - hyperledger-fabric - 带有外部 CouchDB 的 Fabric 1.1 也在对等点内部保存数据。为什么?