Javascript 我认为移动浏览器虚拟视口是一个系统性错误还是有效的解决方案?

Javascript 我认为移动浏览器虚拟视口是一个系统性错误还是有效的解决方案?,javascript,mobile-safari,viewport,android-browser,Javascript,Mobile Safari,Viewport,Android Browser,移动设备上的大多数浏览器都使用与真实显示不匹配的虚拟视口。这之所以有用,有几个原因,我认为最重要的是: 一个小设备可能看起来足够大,以至于一个普通的老式网页不会破坏桌面屏幕的布局 它用于让HTML渲染引擎渲染页面的当前可见部分,从而实现平滑滚动和缩放 然而,我认为这打破了一些标准化的行为预期 特别是,页面不知道其可见区域,因此JS支持的弹出窗口或通知等功能不再正常工作 如果用户将元素移动到视图中,似乎会中断嵌入式资源(如缩略图、视频对象、无休止的列表)的按需加载 它还引入了布局调整JS的不

移动设备上的大多数浏览器都使用与真实显示不匹配的虚拟视口。这之所以有用,有几个原因,我认为最重要的是:

  • 一个小设备可能看起来足够大,以至于一个普通的老式网页不会破坏桌面屏幕的布局
  • 它用于让HTML渲染引擎渲染页面的当前可见部分,从而实现平滑滚动和缩放
然而,我认为这打破了一些标准化的行为预期

  • 特别是,页面不知道其可见区域,因此JS支持的弹出窗口或通知等功能不再正常工作
  • 如果用户将元素移动到视图中,似乎会中断嵌入式资源(如缩略图、视频对象、无休止的列表)的按需加载
  • 它还引入了布局调整JS的不稳定行为,例如调整页面布局的onresize处理程序可以轻松更改页面大小,因此调整视口大小甚至可能重复触发onresize事件

我是否应该认为这还没有被打破,但总有一天,我们会在每一个破碎的页面上坚持自己的小方法,或者我应该放弃任何关于调整大小的预期,window.innerWidth等,并返回到更静态的布局,不再依赖于视口的概念?

我猜您必须权衡开发成本,试图找出所有的怪癖,而不是支持您想要的所有设备/屏幕尺寸。我面临着一个类似的问题,这当然是一个有趣的挑战