css的滾動條

2021-09-17 20:05:54 字數 1164 閱讀 8583

通常設定div滾動條時候,使用的是

/*始終顯示滾動條*/

overflow

:scroll

/*按需顯示滾動條*/

overflow

:auto

自適應寬度同時自動顯示滾動條的場景

overflow: scroll 內容自動撐開容器的寬度不包括滾動條,相當於滾動條是乙個和內容並列顯示的元件。

overflow: auto 內容撐開容器的寬度包括滾動條,即使用whitespace: no-wrap;撐開容器至正好顯示所有內容時,如果有滾動條,則滾動條會覆蓋在內容上方,導致內容寬度再次被縮小,然後出現省略號。

渲染順序:自適應寬度 → 根據高度顯示滾動條 → 重新計算內部元素寬度

這裡不會再次自適應,因此出現了內容顯示不全的情況。

總結
如果寬度是由內容自適應撐開的,則overflow: auto;帶來的滾動條會占用內容的一部分寬度,導致內容顯示不全。

解決辦法

強制顯示滾動條

動態獲取滾動條的寬度:

var scrollbarwidth = container.offsetwidth - 

container.clientwidth;

// 如果沒有滾動條則為0

// 否則為滾動條寬度

有滾動條的時候需要在內容右側加個padding。測試發現,如果直接把padding加在內容元素上,則內容文字顯示全了,但是背景在右側空出了一塊

解決辦法:

使用佔位元素:把當前容器複製乙份,但是給它設定:overflow: hidden; height: 0;不受滾動條影響寬度,同時高度為0不可見;

將scrollbarwidth設定為div的padding-right,則佔位元素的寬度 = 實際容器寬度,可見部分的內容再自適應就完全沒有問題了。

var scrollbarwidth = container.offsetwidth - 

container.clientwidth;

// 如果沒有滾動條則為0

// 否則為滾動條寬度

css的滾動條

css學了太久了 都快忘了,唉 先上效果圖吧 這裡有乙個滾動條 用原生的css寫挺簡單的 scroll 但是,就是有點 一言難盡的味道 這是什麼 滾動條啊 讓我加點樣式啊 scroll webkit scrollbar scroll webkit scrollbar thumb scroll web...

css滾動條屬性

overflow 屬性 檢索或 設定當物件的內容超 過其指定高度及寬度 時如何顯示內容 overflow auto 在需要時 內容會自動新增 滾動條overflow scroll 總是 顯示滾動條overflow x hidden 禁止橫向的 滾動條overflow y scroll 總是 顯示縱向...

css控制滾動條

1 overflow內容溢位時的設定 overflow x水平方向內容溢位時的設定 overflow y垂直方向內容溢位時的設定 以上三個屬性設定的值為visible 預設值 scroll hidden auto。2 scrollbar 3d light color立體滾動條亮邊的顏色 scroll...