瀏覽器滾動條的處理

2021-09-30 13:37:41 字數 867 閱讀 8188

今天遇到了乙個關於滾動條的問題,為了處理這個問題整整試了一上午,

* 子元素的寬度缺省會撐滿父元素的寬度

* 沒有滾動條時

子元素寬度 = 父元素寬度

* 有滾動條時

父元素的有效寬度會變小

父元素寬度 = 原父元素寬度 - 滾動條寬度

* 因此子元素重新調整寬度

子元素寬度 = 原父元素寬度 - 滾動條寬度

* 此時子元素明顯會因為寬度變小而重新調整布局, 所以發生了擠壓.

明白了前因後果, 就很好找解決方案了.

只要預留出滾動條的空間, 讓子元素的寬度在有滾動條和沒有滾動條時不發生變化就可以了.

* 方式一: 限定內層元素的最大寬度以預留出滾動條的寬度

實  現: max-width: calc(300px - 17px); /* 父元素寬度 - 滾動條寬度 */

* 方式二: 讓內層元素的最小寬度佔滿父元素, 通過 padding 預留出滾動條的寬度

實  現: min-width: 300px;       /* 父元素寬度 */

padding-right: 17px;    /* 滾動條寬度 */

box-sizing: border-box; /* 讓元素寬度包含 padding, 否則元素會被滾動條遮擋 */

ps: 方式一和方式二的實現效果有細微的差別, 大家請根據實際需求來選擇.

webkit核心的瀏覽器滾動條樣式優化

.img-ul::-webkit-scrollbar 

.img-ul::-webkit-scrollbar-thumb

.img-ul::-webkit-scrollbar-track

瀏覽器滾動條

做 時發現登入成功後瀏覽器滾動條消失無法滾動頁面 通過觀察和除錯,發現是強制隱藏了bootstrap的模態框後,body的overflow變為了hidden,同時也多了乙個17px的右內邊距,無法呼叫出垂直滾動條,解決方案 隱藏模態框的同時設定body的overflow為scroll,同時取消右內邊...

iframe滾動條充當瀏覽器滾動條

在做部落格專案的時候,使用了iframe,方便根據選擇的文章類別切換顯示的內容,但是文章一般都有很多,通過bootstrap的 列表的方式顯示的話,iframe是一定會出現滾動條的,特別是我新增了乙個 滾動條觸底之後動態載入更多的文章 的功能。這樣頁面上就會有兩個滾動條,特別奇怪。在網上學習了一些之...

瀏覽器滾動條相關

先去mdn 檢視這兩個概念 scrollheight 以及 clientheight 1,判斷是否存在滾動條 if element.scrollheight element.clientheight 0 2,判斷乙個容器滾動條,沒有在最上面,怎麼判斷 if element.scrolltop 0 3...