CSS全局滚动条样式兼容写法

CSS全局滚动条样式兼容写法小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。 css全局滚动条样式兼容写法实现 scss代码如下: IE 内核需要在页面开始处添加UA检测, 配合css已完成兼容Hack. 代码如下:

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注