如何在IE中制作自定义滚动条?

Pri*_*ime 17 html css internet-explorer google-chrome css3

我有这个漂亮的滚动条,可以在Chrome和Safari最新版本中使用.是否可以使用纯CSS为IE9 +创建相同类型的滚动条?

CSS:

.scrollbar
{
    float: left;
    height: 300px;
    background: #F5F5F5;
    overflow-y: scroll;
    margin-bottom: 25px;
}

.scrollbar-active
{
    min-height: 450px;
}

#scroll::-webkit-scrollbar-track
{
    -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
    background-color: #F5F5F5;
}

#scroll::-webkit-scrollbar
{
    width: 10px;
    background-color: #F5F5F5;
}

#scroll::-webkit-scrollbar-thumb
{
    background-color: #000000;
    border: 2px solid #555555;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<div class="scrollbar" id="scroll">
    <div class="scrollbar-active"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

演示:https://jsfiddle.net/7gmut6w3/2/

Ben*_*eau 32

这些是可用于调整IE滚动条样式的CSS属性:

body{
  scrollbar-base-color: #000;
  scrollbar-face-color: #000;
  scrollbar-3dlight-color: #000;
  scrollbar-highlight-color: #000;
  scrollbar-track-color: #000;
  scrollbar-arrow-color: black;
  scrollbar-shadow-color: #000;
  scrollbar-dark-shadow-color: #000;
}
Run Code Online (Sandbox Code Playgroud)

更多信息可以在这里找到.

注意事项 - 调整Web浏览器的原生元素(如滚动条)可能会引入各种奇怪的边缘情况和用户体验问题.对所做的任何调整都要小心,确保自定义滚动条的额外好处超过它将出现的问题.

  • 也只是向其他人指出 - 看起来仍然无法自定义 IE 滚动条的曲线/边框。或者去掉顶部和底部的箭头。 (3认同)
  • 我是否会斗志ey,还是前两个属性相同? (2认同)

Ale*_*nik 13

我更进一步,创建了一个纯 css 解决方案,它不仅为 IE 提供了自定义滚动条,还提供了一个自定义无缝滚动条,可以在所有浏览器中工作,为所有浏览器提供相同的外观和感觉。享受!

描述:它使用Chrome Safari 和 Opera的webkit 滚动条 css 选择器、Firefox 的两个(非常旧的)简单滚动条属性(在版本 64 中引入),以及按顺序定位 ie (10, 11) 和 Edge 的媒体查询技巧提供移动和隐藏部分滚动条宽度、顶部和底部的混合行为,以提供与其他浏览器相同的外观。

注意:此时您无法为 Microsoft Edge 上的滚动条(或颜色)提供标准的 css 样式,但是它有很多投票,您也可以为此要求投票

.scrollable {
  background-color: #a3d5d3;
  height: 100%;
  overflow-y: auto;
}

.scrollable-container {
  background-color: #a3d5d3;
  width: 240px;
  height: 160px;
  position: relative;
  overflow: hidden;
  margin: auto;
  margin-top: 16px;
}

.scrollable div {
  font-size: 23px;
  
}

/*IE*/
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
.scrollable {
        margin-right: -10px;
        padding-top: 32px;
        margin-top: -32px;
        margin-bottom: -32px;
        padding-bottom: 32px;

        /* ie scrollbar color properties */
        scrollbar-base-color: #efefef;
        scrollbar-face-color: #666666;
        scrollbar-3dlight-color: #666666;
        scrollbar-highlight-color: #666666;
        scrollbar-track-color: #efefef;
        scrollbar-arrow-color: #666666;
        scrollbar-shadow-color: #666666;
        scrollbar-dark-shadow-color: #666666;
  }
  
      .scrollable:after {
        content: "";
        height: 32px;
        display: block;
    }
    
}

/*Edge*/
@supports (-ms-ime-align:auto)  {
.scrollable {
        margin-right: -10px;
        padding-top: 16px;
        margin-top: -16px;
        margin-bottom: -16px;
        padding-bottom: 16px;
}
  
.scrollable:after {
    content: "";
    height: 16px;
    display: block;
}
}

/*Firefox*/
/*From version 64 - https://drafts.csswg.org/css-scrollbars-1/*/
.scrollable {
    scrollbar-width: thin;
    scrollbar-color: #666666 #efefef;
}


/*Chrome*/
.scrollable::-webkit-scrollbar-track {
    background-color: #efefef;
    width: 4px;
}

.scrollable::-webkit-scrollbar-thumb {
    background-color: #666666;
    border: 1px solid transparent;
    background-clip: content-box;
}

.scrollable::-webkit-scrollbar {
    width: 8px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="scrollable-container">
  <div class="scrollable">
    <div>Element 1</div>
    <div>Element 2</div>
    <div>Element 3</div>
    <div>Element 4</div>
    <div>Element 5</div>
    <div>Element 6</div>
    <div>Element 7</div>
    <div>Element 8</div>
    <div>Element 9</div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)


小智 6

如果你将所有顶部区域项目设置为与轨道相同的颜色 - 实质上 - 隐藏箭头,但空间仍然存在.

scrollbar-track-color:  #AAA;
scrollbar-3dlight-color:  #AAA;
scrollbar-darkshadow-color:  #AAA;
scrollbar-arrow-color:  #AAA;
Run Code Online (Sandbox Code Playgroud)

现在,如果只有你可以调整宽度,使滚动条更窄!! 有没有人想过这个?