ChatGPT解决这个技术问题 Extra ChatGPT

CSS滚动条样式跨浏览器[重复]

这个问题在这里已经有了答案:CSS 自定义滚动条 in div (20 answers) 7 年前关闭。社区在 9 个月前审查了是否重新打开此问题并将其关闭:原始关闭原因未解决

如何定义 CSS 滚动条样式跨浏览器?我测试了这段代码,它只适用于 IE 和 Opera,但在 Chrome、Safari 和 Firefox 中失败。

<style type="text/css">
<!--    
body {
    scrollbar-face-color: #000000;
    scrollbar-shadow-color: #2D2C4D;
    scrollbar-highlight-color:#7D7E94;
    scrollbar-3dlight-color: #7D7E94;
    scrollbar-darkshadow-color: #2D2C4D;
    scrollbar-track-color: #7D7E94;
    scrollbar-arrow-color: #C1C1D1;
}
-->
</style>
对于 WebKit 浏览器 (Chrome/Safari),您可以使用:stackoverflow.com/questions/7713599/…
@graphicdivine,只有在他们更改整个身体的滚动条时才会出现这种情况。还有很多其他滚动条可以修改(在网页内),它与浏览器 chrome 无关。
此链接显示您必须在 Webkit 浏览器上执行此操作:css-tricks.com/custom-scrollbars-in-webkit

C
Community

Webkit 对滚动条的支持是 quite sophisticated。这个 CSS 提供了一个非常小的滚动条,带有浅灰色的轨道和较深的拇指:

::-webkit-scrollbar
{
  width: 12px;  /* for vertical scrollbars */
  height: 12px; /* for horizontal scrollbars */
}

::-webkit-scrollbar-track
{
  background: rgba(0, 0, 0, 0.1);
}

::-webkit-scrollbar-thumb
{
  background: rgba(0, 0, 0, 0.5);
}

This answer 是额外信息的绝佳来源。


然而,这在 IE 中不起作用
这将适用于铬。火狐和IE呢?
@SHEKHARSHETE,是的,这种方法仅适用于 WebKit。如果您需要支持其他浏览器,您应该参考其他答案,也许与这些供应商前缀的 CSS 选择器一起使用。
不要在FF上工作
T
Till Helge

滚动条 CSS 样式是 Microsoft 开发人员发明的一种奇怪的东西。它们不是 CSS 的 W3C 标准的一部分,因此大多数浏览器都会忽略它们。


不过现在 Webkit 也支持了。我认为 Opera 也支持它们。所以事实上,截至 2012 年,似乎 70% 的浏览器市场份额确实支持它(这是滚动条的样式,它们仍然为每个浏览器使用不同的语法来完成样式)。
而现在,2013 年,Opera 也转向了 Webkit。惊人的!
有关备选方案的更完整答案,请参见 stackoverflow.com/a/14150577/276648
@jmendeth 好吧,我没有花时间自己测试它,但根据this page,它应该适用于 IE、Chrome、Firefox。并且根据 this forum thread,IE 样式规则在 Opera 中也可以工作(编辑?),但仅限于主页滚动条。不适用于 textarea 或 div 等...
每个人都会喜欢它。来自 IE 时代的唯一聪明点子?
k
ktutnik

jScrollPane 是跨浏览器滚动条的一个很好的解决方案,并且可以很好地降级。


这只适用于垂直滚动条吗?
@paradroidΨ 它也可以水平滚动内容。
它不会很好地降解。有很多情况下它不会创建滚动条(我在 Firefox21 中使用过)。
G
Geza Kerecsenyi

nanoScrollerJS 是简单的使用。我总是用它们...

Browser compatibility:

IE7+

火狐 3+

铬合金

野生动物园 4+

歌剧 11.60+

Mobile browsers support:

iOS 5+(iPhone、iPad 和 iPod Touch)

iOS 4(带有 polyfill)

安卓火狐

Android 2.2/2.3 原生浏览器(带有 polyfill)

Android Opera 11.6(带有 polyfill)

文档中的代码示例,

标记 - 需要以下类型的标记结构才能使插件工作。

<div id="about" class="nano">
    <div class="nano-content"> ... content here ...  </div>
</div>

D
DMTintner

从 IE6 开始,我相信您无法使用这些属性自定义滚动条。上面链接的 Chris Coyier 文章详细介绍了用于自定义滚动条的 webkit 专有 css 选项。

如果你真的想要一个可以完全自定义的跨浏览器解决方案,你将不得不使用一些 JS。这是一个名为 FaceScroll 的不错插件的链接:http://www.dynamicdrive.com/dynamicindex11/facescroll/index.htm


2013 年真的有人还在用 IE6 编码吗?
@user2867288 - 是的……是的。实际上,我为一家小型网络代理公司做了自由职业,该代理公司将他们的一些工作交给我,这要求我让所有 IE6 都支持。我终于在那个时候放弃了整个机构作为客户的身份,因为它变得如此荒谬。失去了可观的收入......但保持了我的理智。我不会怀疑他们在 2016 年的今天仍然需要它。
这是作为答案发布的,但它并不试图回答这个问题。它可能应该是一个编辑、一个评论、另一个问题,或者完全删除。
Y
Yousef Altaf

试试这个,它很容易在 IE 和 Safari 和 FF 上使用和测试,并且工作正常,除了不需要很多 div 外,只需添加 id,它会在你链接 Js 和 Css 文件后正常工作。 FaceScroll Custom scrollbar

希望能帮助到你

编辑步骤 1:将以下脚本添加到页面部分:

<link href="general.css" rel="stylesheet" type="text/css">

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<script type="text/javascript" src="jquery.ui.touch-punch.min.js"></script>

<script type="text/javascript" src="facescroll.js"></script>
<script type="text/javascript">
    jQuery(function(){ // on page DOM load
        $('#demo1').alternateScroll();
        $('#demo2').alternateScroll({ 'vertical-bar-class': 'styled-v-bar', 'hide-bars': false });  
    })
</script>

第 2 步:然后在页面的 BODY 中,将以下示例 HTML 块添加到您的页面。

<p><b>Scrollbar (default style) shows onMouseover</b></p>

<div id="demo1" style="width:300px; height:250px; padding:8px; background:lightyellow; border:1px solid gray; resize:both; overflow:scroll">

From Wikipedia- Gunpowder, also known since in the late 19th century as black powder, was the first chemical explosive and the only one known until the mid 1800s.[2] It is a mixture of sulfur, charcoal, and potassium nitrate (saltpeter) - with the sulfur and charcoal acting as fuels, while the saltpeter works as an oxidizer.[3] Because of its 
</div>

<br />

<p><b>Scrollbar (alternate style), always shown</b></p>

<div id="demo2" style="width:400px; height:130px; padding:10px; padding-right:8px; background:lightyellow; border:1px solid gray; overflow:scroll; resize:both;">

From Wikipedia- Gunpowder, also known since in the late 19th century as black powder, was the first chemical explosive and the only one known until the mid 1800s.[2] It is a mixture of sulfur, charcoal, and potassium nitrate (saltpeter) - with the sulfur and charcoal acting as fuels, while the saltpeter works as an oxidizer.[3] Because of its 
</div>

这是作为答案发布的,但它并不试图回答这个问题。它可能应该是一个编辑、一个评论、另一个问题,或者完全删除。