javascript - 本机延迟加载图像回流 (loading='"lazy")
问题描述
尝试loading="lazy"
在标签上使用新属性时,出现img
以下错误:
[Intervention] An <img> element was lazyloaded with loading=lazy, but had no dimensions specified. Specifying dimensions improves performance. See https://crbug.com/954323
在线查看时,我遇到了以下链接,该链接指定添加width
和height
属性img
有助于浏览器通过在屏幕上绘制占位符来避免重排:
https://web.dev/native-lazy-loading#image-loading
我的问题是,如今硬编码图像的 awidth
和height
图像非常罕见,如果我在样式表中使用以下内容覆盖这些内容,我仍然会从避免重排中受益吗?
img {
width: 100%;
height: auto;
}
在此先感谢萨米。
解决方案
简短的回答是否定的......即使“重排”行为严格依赖于浏览器的实现,假设几乎任何对 DOM 的修改都会导致“重排”,特别是如果它涉及改变尺寸(元素置换其他元素)或添加/删除节点。仍然建议添加高度和宽度属性,这不仅可以抑制错误/警告,还可以作为后备。
最重要的是,如果写入的高度/宽度与最终样式匹配,您将避免在加载图像时出现难看的“跳跃”效果。
附加说明:尽可能避免“回流”,但在您的情况下,图像加载只会发生一次,所以我会说没关系。
推荐阅读
- metal - 调试金属着色器时,Xcode 是否支持 iPhone 中的着色器调试器?
- html - CSS Hover 仅适用于按钮的下半部分
- mysql - 未定义 Qt 库“mysql”
- python - NumPy cumsum 舍入问题
- python - 根据条件转换特定列值并使用该转换值更新另一行
- javascript - Aframe 在组件中的函数之间传递变量
- web-services - Web 服务在 SOAP 中显示 localhost 而不是 IP
- excel - 如何通过包含数百个文本文件的文件夹运行宏
- node.js - 如何使用 mocha、node 和 selenium 集成测试 react-select 多选下拉菜单?
- elasticsearch - 需要帮助使用 logstash 将 csv JSON 字段解析为字符串