「固定された」配置要素でz-index CSSプロパティを使用すると、Chromeで奇妙な動作が発生します。
FirefoxとOperaブラウザが私に待望の結果を与えるとき、Chromeはz-indexプロパティを考慮していないようで、赤いオーバーレイの上にスクロールバーを表示します(コードとFiddle怒鳴る)。
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;
}
OS:Apple Mac OS 10.8 Google Chrome:バージョン27.0.1453.93
同じ問題を経験した人、またはそれを修正する方法を持っている人はいますか?
助けてくれてありがとう。
編集:
問題の概要については、この スクリーンショット を参照してください。
-webkit-transform: translate3d(0, 0, 0)
を追加してみてください。モバイルクロームで発生した同様の問題を解決します。
私にはいくつかの同様の問題があり、解決する唯一の方法は、常に表示するためにWebkitスクロールバーにいくつかの特別なスタイルを適用することでした。例を修正した http://jsfiddle.net/sinspiral/pTkQL/ を参照してください。
これはプラットフォーム互換ではありません(Windowsではこれらのスタイルも適用されます)。そのため、実行中のOSを検出する方法(おそらく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;
}