content-visibility: auto 与移除 DOM 有什么区别?
参考答案
content-visibility: auto 允许浏览器在内容与用户暂不相关时跳过其部分布局和绘制工作。节点仍在 DOM 中,不等于虚拟列表卸载节点,也不会自动停止订阅、网络请求和 JavaScript 计算。
通常结合 contain-intrinsic-size 提供跳过布局时的尺寸估计,减少滚动条和布局的突变;估计不合理仍可能造成跳动。读取被跳过内容的布局信息也可能迫使浏览器执行工作,应结合实际性能记录评估。
auto 与 hidden 的语义不同:auto 下的内容应保留页面查找、焦点等用户能力,不能用来隐藏敏感内容。还应实测辅助技术访问;MDN 特别提醒,跳过样式处理时,原本依靠内部样式隐藏的元素可能仍出现在无障碍树中。不要为性能优化给整个可读区域盲目加 aria-hidden。