Preventing Scroll Bar Disappearance for Trackpad Users in WebKit/Blink
The default behavior of macOS's WebKit/Blink browsers (Safari/Chrome) has long been to automatically hide scroll bars from users interacting with trackpads on versions above 10.7 (Mac OS X Lion). This behavior can be particularly problematic since it removes a common visual cue indicating the scrollability of an element.
Problem Statement
The difficulty arises in ensuring a consistently visible scroll bar for scrollable elements in WebKit-based browsers on macOS.
Solution
WebKit provides a powerful pseudo-element system, allowing for extensive manipulation of scroll bars through the use of -webkit-scrollbar pseudo-elements. To maintain visible scroll bars at all times:
Example
The following CSS demonstrates how to recreate the disappearing scroll bar appearance:
.frame::-webkit-scrollbar { -webkit-appearance: none; } .frame::-webkit-scrollbar:vertical { width: 11px; } .frame::-webkit-scrollbar:horizontal { height: 11px; } .frame::-webkit-scrollbar-thumb { border-radius: 8px; border: 2px solid white; /* should match background, can't be transparent */ background-color: rgba(0, 0, 0, .5); } .frame::-webkit-scrollbar-track { background-color: #fff; border-radius: 8px; }
Visual Demonstration
Additional Notes
The above is the detailed content of How Can I Prevent Scroll Bars from Disappearing on macOS Trackpads in WebKit/Blink Browsers?. For more information, please follow other related articles on the PHP Chinese website!