【问题标题】:How to prevent a webkit-scrollbar from pushing over the contents of a div?如何防止 webkit-scrollbar 推送 div 的内容?
【发布时间】:2012-10-14 19:44:33
【问题描述】:

我正在使用 webkit-scrollbar 并且遇到了样式问题,因为 webkit 滚动条将 div 的内容向左推,导致内容溢出。

通知

  • 第一个框使用默认浏览器滚动条并且不会溢出(好)
  • 第二个框使用了 webkit 滚动条,最终破坏了布局。 (坏/问题)

http://jsfiddle.net/ryeah/1/

任何想法我在 webkit 滚动条上做错了什么导致 div 溢出/溢出。我们如何修复第二个盒子?谢谢

Webkit 滚动条代码:

.box2::-webkit-scrollbar {
    height: 16px;
    overflow: visible;
    width: 16px;
}
.box2::-webkit-scrollbar-thumb {
    background-color: rgba(0, 0, 0, .2);
    background-clip: padding-box;
    border: solid transparent;
    border-width: 1px 1px 1px 6px;
    min-height: 28px;
    padding: 100px 0 0;
    box-shadow: inset 1px 1px 0 rgba(0, 0, 0, .1),inset 0 -1px 0 rgba(0, 0, 0, .07);
}
.box2::-webkit-scrollbar-button {
    height: 0;
    width: 0;
}
.box2::-webkit-scrollbar-track {
    background-clip: padding-box;
    border: solid transparent;
    border-width: 0 0 0 4px;
}
.box2::-webkit-scrollbar-corner {
    background: transparent;
}

【问题讨论】:

  • 您介意将已接受的答案更新为下面评分较高的答案吗?

标签: html css webkit


【解决方案1】:

嗯.. 我想不出一种让 webkit 滚动条叠加的方法。停止换行的一种解决方案是使用

隐藏滚动条
.box2::-webkit-scrollbar {
  height: 16px;
  overflow: visible;
  width: 16px;
  display: none;
}

你可以将你的 UL 的宽度设置为与框相同,以便它利用溢出功能并显示在滚动条下方

.box ul {
  width: 149px;
}

【讨论】:

    【解决方案2】:

    您是否尝试将overflow-y:overlay 放在父 div 中?它适用于我的铬。 This page 说它也适用于 safari。

    【讨论】:

    • 似乎这应该是这里选择的答案。完美运行
    • 优雅的解决方案。就像@EidanSpiegel 说的那样,不能在 Firefox 中工作。
    • 但是覆盖不是透明的,垂直滚动条会挡住它覆盖的任何内容。尚未找到使其透明的方法。
    • 就我而言,更改为 overflow-y:overlay 可以修复 Chrome 并破坏 Firefox。
    【解决方案3】:

    有一种方法可以让滚动条显示在 div 之外。

    使用静态宽度并将 div 位置设为绝对位置。对我有用。

    #divID{
    overflow: hidden;
    width: calc(1024px + 0);
    }
    
    #divID:hover{
    overflow-y:scroll;
    }
    

    这愚弄了 DOM。

    【讨论】:

      【解决方案4】:

      这就是我让它在 Chrome 上运行的方式,不会破坏 Firefox:

      overflow: scroll;
      overflow-x: hidden;
      overflow-y: overlay;
      

      我的意思是,滚动条仍在 Firefox 上占用 width 空间,但至少它仍在显示和工作。

      通过overflow-y: overlay;,我正在修复 Chrome 并破坏了我的 Firefox 滚动。

      【讨论】:

      • 非常感谢!我遇到了同样的问题,无法理解我的简单 flexbox 代码出了什么问题。
      • 另外,我已将 -moz 添加到 overflow-y: overlay。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多