【问题标题】:Strange z-index behavior with scrollbars under ChromeChrome下滚动条的奇怪z-index行为
【发布时间】:2013-05-28 07:03:12
【问题描述】:

在“固定”定位元素上使用 z-index CSS 属性会给我在 Chrome 下的奇怪行为。

当 Firefox 和 Opera 浏览器给我期待的结果时,Chrome 似乎不尊重 z-index 属性,在红色覆盖层上方显示滚动条(请参阅下面的代码和小提琴)。

HTML:

<div class="left">
    <div class="placeholder"></div>
</div>
<div class="right"></div>
<div class="overlay"></div>

CSS:

.left {
    background-color: yellow;
    bottom: 0;
    left: 0;
    overflow: auto;
    position: fixed;
    top: 0;
    width: 35%;
    z-index: 10;
}

.right {
    background-color: orange;
    bottom: 0;
    position: fixed;
    right: 0;
    top: 0;
    width: 65%;
    z-index: 20;
}

.overlay {
    background-color: red;
    bottom: 20%;
    left: 25%;
    position: fixed;
    right: 25%;
    top: 20%;
    z-index: 40;
}

.placeholder {
    height: 3000px;
}

示例:http://jsfiddle.net/kvNFW/

操作系统:Apple Mac OS 10.8 谷歌浏览器:版本 27.0.1453.93

有没有人遇到过同样的问题,或者有办法解决这个问题?

提前感谢您的帮助。

编辑:

请参阅此screenshot 了解该问题的概述。

【问题讨论】:

  • 它在我的 windows chrome 版本 27 中显示正常
  • 我认为问题出在 Mac OS 自动隐藏滚动条上。
  • 太糟糕了,这个问题还没有答案。我也对答案感兴趣……

标签: css google-chrome scrollbar z-index


【解决方案1】:

我有一些类似的问题,我发现解决的唯一方法是对 webkit 滚动条应用一些特殊样式,以便始终显示它。请参阅 http://jsfiddle.net/sinspiral/pTkQL/ 并修复您的示例。

这与平台不兼容(因为在 Windows 上它也会应用这些样式),因此您可能需要找到一种方法,也许是 js,来检测它在哪个操作系统上运行。

.left::-webkit-scrollbar{
   -webkit-appearance: none;
}

.left::-webkit-scrollbar-thumb {
    background-color: rgba(50, 50, 50, .5);
    border: 3px solid transparent;
    border-radius: 9px;
    background-clip: content-box;
}

.left::-webkit-scrollbar-track {
    background-color: rgba(100, 100, 100, .5);
    width: 15px;
}

【讨论】:

  • 确实,对于这些 Webkit 特定的样式,滚动条会在后台运行。但遗憾的是,它变得始终可见,离开该区域时不再消失。
【解决方案2】:

您可以尝试添加-webkit-transform: translate3d(0, 0, 0)。它解决了我在移动 chrome 中发生的类似问题。

【讨论】:

  • 感谢您的提示。确实,在黄色块上添加-webkit-transform: translate3d(0, 0, 0) 就成功了。
  • 这似乎是 Chrome 48 上的一个问题(再次?)与 OS X 中的自动隐藏滚动条相结合。translateZ(0) 修复了它。
  • 我在 Chrome 48 中遇到了与 @chrisM 所说的相同的问题。在较高的 z-index 元素上添加 transform: translateZ(0); 就可以了。谢谢
  • 谢谢!我一直在努力弄清楚 WordPress 和 Visual Composer 发生了什么。将此添加到 .vc_row 类解决了这个问题。
猜你喜欢
  • 2019-03-27
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-30
  • 1970-01-01
相关资源
最近更新 更多