css:浏览器滚动条出现时页面宽度会缩窄页面抖动
解决方式如下
方式一
总是显示滚动条,体验不好
方式二
兼容性一般
方式
方式四
方式五
方式六
解决方案,来自css大佬张鑫旭 的分享
关于方案六的原理
在评论中看到关于这个方案的详解,顿时茅塞顿开!
其实就是和别的方案一样先把滚动条的位置留出来(对HTML设置scroll)。因为position的缘故,在下面对body设置width: 100vw;的时候一方面这个100就不是相对整个视窗了;
另一方面这时候body已经脱离文档流在一个单独的渲染层中了。如果还不理解可以参考张大之前关于HTML、body关系的文章
最最终极方案
在同一个作者的这篇文章中提到Chrome96+以上可以使用的一个新特性可以完美解决这个问题:还有完没完,怎么又来了个 scrollbar-gutter? « 张鑫旭-鑫空间-鑫生活