原文作者:Eric
写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。
目前 Apple Watch 也有浏览器了。 Apple 创造了一类在 web 中通用的极小视图窗口。 iPhone WebKit 给我们带来了<meta name =“viewport” content =“width = device-width”>; ?而 Watch WebKit 创造了 <meta name =“disabled-adaptations” content =“watch”>。
2018 年的 <meta>-magic 与 2007 年的功能相同。 除非你在提前声音你考虑的是一英寸宽的屏幕,否则 Apple 会假设你是一个更大更常见的视图窗口,并缩小视图。
我比较好奇它的实现细节及其对响应式图像的处理方式,所以我进行了一个测试。 最近,我终于说服某人(我的老板,hi Colin)在他的 WatchOS 5 上进行测试,结果很有意思,我们一起来看看。
我的期望是,即使没有新的 meta 声明,Apple Watch 也能响应式地准确判断 DPR。 我的预期 DPR 是这样的:
但现实却是这样的:
Apple Watch 会模拟 320 像素 x 2 = 640 实际像素宽的视图窗口(还是精确的物理像素!),对屏幕上的其它的东西进行缩放以适应该窗口。
那么响应式图像的实际意义是什么? 拿这个 <img> 来说:
默认情况下,即使用户需要的只是 tiny.jpg 的分辨率,Apple Watches 还是会选择 small.jpg。 好烧流量啊?!
要避免这种情况,你得在 <head> 中加上这段神奇的文字:
加上之后,DPR 是这样的:
这将使响应式图像更高效地做选择,并且强制确保布局基于 136 像素宽的视图窗口。
艺术感
我猜大多数响应式布局在 136 像素时表现不佳。 你知道还有什么可能经不起这种缩放吗? 没错,就是图片! 在极小的物理尺寸下,许多东西都将变得非常小,非常不清晰:
因此,在设计小屏幕时,请考虑一下艺术感。
…像这样 ?。 对了! 你可以使用 Cloudinary 等工具自动进行图像识别和放大。
小贴士 ?
我认为(?)Apple Watch WebKit 的 uasge 数据目前仅仅只是一个舍入错误,但如果推动响应式设计的极限真的很重要,Apple Watch 会给出一个这么做的理由。
总结:
试着把你的布局调整为 136 像素宽
在你的 <img> 的 src 集合中使用 300w-ish 的资源
考虑艺术感以保持图像清晰可辨
使用神奇的 <meta>