怎麼把"滾動條"隱藏?

轉載自:juejin.im/post/5a6046…

問題釐清

什麼是"滾動條"?html

滾動條指的是下圖右側被紅線框起來的部分:web

只要網頁內容大於視窗,滾動條就會出現。chrome

通常來講,只要不是body層次的滾動條,那用overflow: hidden;就能解決滾動條出現的問題,但此時頁面也會變得沒法捲動。瀏覽器

目前網路上已經有諸多可隱藏非body層次的滾動條又可捲動頁面的教學,因此本文主要聚焦於如何隱藏瀏覽器(也就是body層次)的滾動條。bash

解決方法

針對不一樣的瀏覽器,有不一樣的隱藏滾動條的方法,如下針對三大瀏覽器 chrome、ie(包括 edge)、firefox 分別敘述之:post

Chorme

body::-webkit-scrollbar {
    display: none;
}
複製代碼

IE/Edge

body {
    -ms-overflow-style: none;
}
複製代碼

Firefox

firefox 是三者之中最麻煩的:spa

html {
    overflow: -moz-hidden-unscrollable; /*注意!若只打 hidden,chrome 的其它 hidden 會出問題*/
    height: 100%;
}

body {
	height: 100%;
	width: calc(100vw + 18px); /*瀏覽器滾動條的長度大約是 18px*/
	overflow: auto;
}
複製代碼

到此還沒結束,你還要在一些地方加上width: 100vw;firefox

假設你的HTML長這樣:code

<body>
    <div id="example-1">
        <p>難臺子哥式自不家草要計在來也見加正活書。</p>
    </div>
    <article id="example-2">
        <h1>意家的不稱打準無政!</h1>
        <p>得研河金起里美希孩有人裡人。料低不。</p>
        <button>處拉</button>
    </article>
</body>
複製代碼

那你的CSS就還要再加上:orm

#example-1 {
    width: 100vw;
}

#example-2 {
    width: 100vw;
}
複製代碼

總結

綜上所述,若是你想讓三大瀏覽器的滾動條都隱藏,而且能夠捲動,那你的CSS至少要長這樣:

html {
    overflow: -moz-hidden-unscrollable;
    height: 100%;
}

body::-webkit-scrollbar {
    display: none;
}

body {
    -ms-overflow-style: none;
    height: 100%;
	width: calc(100vw + 18px);
	overflow: auto;
}
複製代碼

至於width: 100vw;要加在何處,就要看你的HTML結構長怎樣了。

優勢

能夠讓讀者更聚焦於內文,而不會看到滾動條很短就懶得看、跳出網頁,或一心急,就把滾動條直直往下拉。換言之,就是強迫讀者慢慢地把內容看完。

缺點

假如讀者想往回看,可能就會要滾好久。因此,若是你想爲較長的內文隱藏滾動條,建議應有導覽列,讓讀者能夠快速跳到某一處。

相關文章
相關標籤/搜索