CSS滚动条颜色设置

240 阅读3分钟

CSS滚动条颜色设置

在CSS中,可以通过 ::-webkit-scrollbar 系列伪元素来设置滚动条的样式和颜色。需要注意的是,这些样式仅在基于 WebKit 内核的浏览器(如 Chrome、Safari、Edge)中生效。对于 Firefox 浏览器,需要使用 scrollbar-widthscrollbar-color 属性。

  1. WebKit 浏览器(Chrome、Safari、Edge)

使用 ::-webkit-scrollbar 系列伪元素自定义滚动条样式。

示例代码:

/* 设置滚动条整体样式 */
::-webkit-scrollbar {
  width: 12px; /* 垂直滚动条宽度 */
  height: 12px; /* 水平滚动条高度 */
}

/* 设置滚动条轨道 */
::-webkit-scrollbar-track {
  background: #f1f1f1; /* 轨道背景颜色 */
  border-radius: 10px; /* 圆角 */
}

/* 设置滚动条滑块 */
::-webkit-scrollbar-thumb {
  background: #888; /* 滑块颜色 */
  border-radius: 10px; /* 圆角 */
}

/* 设置滚动条滑块悬停状态 */
::-webkit-scrollbar-thumb:hover {
  background: #555; /* 悬停时滑块颜色 */
}
  1. Firefox 浏览器

Firefox 使用 scrollbar-widthscrollbar-color 属性来设置滚动条样式。

示例代码:

/* 设置滚动条宽度和颜色 */
html {
  scrollbar-width: thin; /* 可选值:auto | thin | none */
  scrollbar-color: #888 #f1f1f1; /* 滑块颜色 轨道颜色 */
}
  1. 兼容所有浏览器的滚动条样式

为了兼容 WebKit 和 Firefox 浏览器,可以结合两种方式:

/* WebKit 浏览器 */
::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 10px;
}

::-webkit-scrollbar-thumb {
  background: #888;
  border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
  background: #555;
}

/* Firefox 浏览器 */
html {
  scrollbar-width: thin;
  scrollbar-color: #888 #f1f1f1;
}
  1. 隐藏滚动条

如果希望隐藏滚动条但仍保留滚动功能,可以使用以下方法:

隐藏滚动条但仍可滚动:

/* WebKit 浏览器 */
::-webkit-scrollbar {
  display: none; /* 隐藏滚动条 */
}

/* Firefox 浏览器 */
html {
  scrollbar-width: none; /* 隐藏滚动条 */
}

隐藏滚动条并禁用滚动:

body {
  overflow: hidden; /* 隐藏滚动条并禁用滚动 */
}
  1. 示例效果

以下是一个完整的示例,展示如何自定义滚动条样式:

<div class="scrollable-content">
  <p>这是一个很长的内容,用于测试滚动条样式。</p>
  <p>这是一个很长的内容,用于测试滚动条样式。</p>
  <p>这是一个很长的内容,用于测试滚动条样式。</p>
  <p>这是一个很长的内容,用于测试滚动条样式。</p>
  <p>这是一个很长的内容,用于测试滚动条样式。</p>
  <p>这是一个很长的内容,用于测试滚动条样式。</p>
  <p>这是一个很长的内容,用于测试滚动条样式。</p>
  <p>这是一个很长的内容,用于测试滚动条样式。</p>
  <p>这是一个很长的内容,用于测试滚动条样式。</p>
  <p>这是一个很长的内容,用于测试滚动条样式。</p>
</div>
.scrollable-content {
  width: 300px;
  height: 200px;
  overflow: auto;
  padding: 20px;
  border: 1px solid #ccc;
}

/* WebKit 浏览器 */
::-webkit-scrollbar {
  width: 12px;
  height: 12px;
}

::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 10px;
}

::-webkit-scrollbar-thumb {
  background: #888;
  border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
  background: #555;
}

/* Firefox 浏览器 */
html {
  scrollbar-width: thin;
  scrollbar-color: #888 #f1f1f1;
}

总结

  • 使用 ::-webkit-scrollbar 系列伪元素自定义 WebKit 浏览器的滚动条样式。
  • 使用 scrollbar-widthscrollbar-color 自定义 Firefox 浏览器的滚动条样式。
  • 结合两种方式可以实现兼容所有浏览器的滚动条样式。
  • 如果需要隐藏滚动条,可以使用 display: noneoverflow: hidden

更多vue相关插件及后台管理模板可访问vue admin reference,代码详情请访问github