纯CSS解决滚动条显示和消失时导致页面抖动的问题

问题:

我在使用 ElementPlus 时发现,弹出对话框界面后,界面右边的滚动条会消失,进而导致 body 变宽,使整个页面发生抖动。

我先在网上搜索有没有合适的办法,但找到的方法都不太适合我的情况。

我找到了如下所示的 css,但是对我的页面来说,会挡住顶部导航栏右边的头像。

body {
  margin: 0 calc((100vw - 100%) * -1) 0 0;
  overflow-x: hidden;
}

100vw - 100% 计算的是滚动条的宽度。100vw 是浏览器窗口宽度(包括滚动条),100% 是网页宽度(不包括滚动条)。所以这两个值相减,就可以得到滚动条的宽度。

使用上面的css的效果是这样的。
在这里插入图片描述
可以明显的看到,我网页右上角的头像被滚动条遮住了。

解决

只需再添加一个 padding-right 即可解决。

body {
  margin: 0 calc((100vw - 100%) * -1) 0 0;
  padding-right: calc(100vw - 100%);
  overflow-x: hidden;
}

完美解决。
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值