回答:
html {
overflow: -moz-scrollbars-vertical;
overflow-y: scroll;
}
これにより、スクロールバーが常に表示され、必要なときにのみアクティブになります。
更新:上記が機能しない場合は、これを使用するだけでかまいません。
html {
overflow-y:scroll;
}
overflow-y
か、何かご存知ですか?それ-moz-scrollbars-vertical
はoverflow-y
プロパティを支持して非難されているようです。
html
が少しハックしている(私のような)場合は、の:root
代わりに構造擬似セレクターを使用できることに注意してくださいhtml
。参照:developer.mozilla.org/en-US/docs/Web/CSS/
オーバーフローが「自動」ではなく「スクロール」に設定されていることを確認してください。そうは言っても、OS X Lionでは、「スクロール」に設定されたオーバーフローは、スクロールバーが使用されている場合にのみ表示されるという点で、autoのように動作します。したがって、上記の解決策が機能していないようであれば、それが原因である可能性があります。
これを修正する必要があります:
::-webkit-scrollbar {
-webkit-appearance: none;
width: 7px;
}
::-webkit-scrollbar-thumb {
border-radius: 4px;
background-color: rgba(0, 0, 0, .5);
-webkit-box-shadow: 0 0 1px rgba(255, 255, 255, .5);
}
デフォルトが気に入らない場合は、それに応じてスタイルを設定できます。
-webkit-appearance: none;
ここ数年で状況は変化しました。上記の回答は、すべてのケースで有効ではなくなりました。Appleは消えるスクロールバーを随所に押しやっている。Safari、Chrome、さらにはMacO(およびiO)上のFirefoxでも、実際にスクロールしているときのみスクロールバーが表示されます—現在のWindows / IEについては知りません。ただし、Webkitのスクロールバーにスタイルを設定する非標準的な方法があります(IEはそれをずっと前に廃止しました)。
html {height: 101%;}
私はこのクロスブラウザーソリューション を使用します(注:常に1行目でDOCTYPE宣言を使用します。それがquirksmodeで機能するかどうかはわかりませんが、テストしていません。)。
これにより、常にすべてのページにアクティブな垂直スクロールバーが表示され、垂直スクロールバーは数ピクセルのみスクロール可能になります。
ページのコンテンツがブラウザの表示領域(ビューポート)より短い場合でも、垂直スクロールバーがアクティブのままであり、スクロールできるのは数ピクセルのみです。
このソリューションを使用してCSS検証(私はHTML検証のみに夢中です)に夢中になっている場合は、次のような非標準のCSS属性を使用していないため、CSSコードもW3Cを検証します -moz-scrollbars-vertical
body { height:101%; }
大きなページを「トリミング」します。
代わりに、私は使用します:
body { min-height:101%; }