我們經常會遇到這樣的情況:在一個頁面加載的開始,頁面高度比較低,不會出現滾動條。而隨着頁面的加載,滾動條出現,頁面中居中的標題,圖片或者一些其他的東西會突然往左邊跳一下。
這是因爲,剛開始沒有出現滾動條時,你用margin:0 auto;所做的居中是根據瀏覽器窗口大小而計算的居中。在出現滾動條時,用margin:0 auto;所做的居中是根據瀏覽器窗口大小減去滾動條的寬度而計算的居中。這樣就會出現跳動的問題。
解決方法我是從一個博客的評論上學到的,看到這個解決辦法,才發現自己學的東西有多淺顯,慚愧啊慚愧,還一直以爲自己雖不算大牛,最起碼還不錯呢,高估自己了。
言歸正傳,這個解決辦法很簡單,就是加上一句body{width: 100vw;}。
vw是一個css單位,參考手冊上的說法是“視口被均分爲100單位的vw”,這裏的視口應該指的是瀏覽器窗口吧。那麼100vw就是瀏覽器窗口大小,不管有沒有滾動條,這個值是不會變的。這樣就解決了以上的問題。
vw兼容IE9+,暫時不知道這個方法有沒有其他的缺點。
以上,個人認爲這個一個很完美的解決方法。