页面出现滚动条时,居中的元素不会跳动的方法

  咱们常常会遇到这样的状况:在一个页面加载的开始,页面高度比较低,不会出现滚动条。而随着页面的加载,滚动条出现,页面中居中的标题,图片或者一些其余的东西会忽然往左边跳一下。css

  这是由于,刚开始没有出现滚动条时,你用margin:0 auto;所作的居中是根据浏览器窗口大小而计算的居中。在出现滚动条时,用margin:0 auto;所作的居中是根据浏览器窗口大小减去滚动条的宽度而计算的居中。这样就会出现跳动的问题。浏览器

  解决方法我是从一个博客的评论上学到的,看到这个解决办法,才发现本身学的东西有多浅显,惭愧啊惭愧,还一直觉得本身虽不算大牛,最起码还不错呢,高估本身了。ide

  言归正传,这个解决办法很简单,就是加上一句body{width: 100vw;}。图片

  vw是一个css单位,参考手册上的说法是“视口被均分为100单位的vw”,这里的视口应该指的是浏览器窗口吧。那么100vw就是浏览器窗口大小,无论有没有滚动条,这个值是不会变的。这样就解决了以上的问题。博客

  vw兼容IE9+,暂时不知道这个方法有没有其余的缺点。it

  以上,我的认为这个一个很完美的解决方法。class