小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
css全局滚动条样式兼容写法实现
scss代码如下:
/* 滚动条样式 S */
$--scrollbar-track-color: rgba(0, 0, 0, 0.5);
$--scrollbar-thumb-color: transparent;
// for Mozilla
@-moz-document url-prefix() {
* {
scrollbar-color: $--scrollbar-track-color $--scrollbar-thumb-color !important;
scrollbar-width: thin !important;
}
}
// for IE
.ie {
&, * {
scrollbar-arrow-color: $--scrollbar-track-color; // 三角箭头的颜色
scrollbar-face-color: $--scrollbar-track-color; // 滚动条滑块按钮的颜色
scrollbar-track-color: $--scrollbar-thumb-color; // 滚动条轨道颜色
scrollbar-shadow-color: transparent; // 滚动条阴影
// scrollbar-highlight-color: #0099dd; // 滚动条整体颜色
// scrollbar-3dlight-color:#0099dd; // 滚动条3d亮色阴影边框的外观颜色
// scrollbar-darkshadow-color: #0099dd; // 滚动条3d暗色阴影边框的外观颜色
// scrollbar-base-color: #0099dd; // 滚动条基准颜色
}
}
// for Webkit
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-thumb {
border-radius: 4px;
background-color: $--scrollbar-track-color;
&:hover {
background-color: lighten($--scrollbar-track-color, 20%);
}
}
::-webkit-scrollbar-track-piece {
border-radius: 4px;
background-color: $--scrollbar-thumb-color;
}
::-webkit-scrollbar-corner {
background-color: $--scrollbar-thumb-color;
}
/* 滚动条样式 E */
IE
内核需要在页面开始处添加UA检测, 配合css已完成兼容Hack.
代码如下:
import UA from "ua-device";
const ua = new UA(navigator.userAgent);
const classList = document.documentElement.className.split(" ");
// 如果是ie浏览器添加 `.ie` class
if (ua.browser.name === "Internet Explorer") {
classList.push("ie");
}
document.documentElement.className = classList.join(" ");
export default ua;
*: 由于Mozila
内核滚动条宽度 thin
等于8px, IE
内核滚动条宽度不可设置, Edge
浏览器滚动条不可修改. 所以为保证所有浏览器滚动条效果, 其他内核浏览器滚动条样式尽可能一致.
今天的文章CSS全局滚动条样式兼容写法分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/18823.html