回答:
次のoverflow: hidden;
ようにbodyタグに設定します。
<style type="text/css">
body {
overflow: hidden;
}
</style>
上記のコードは、水平スクロールバーと垂直スクロールバーの両方を非表示にします。
垂直スクロールバーのみを非表示にする場合は、次を使用しますoverflow-y
。
<style type="text/css">
body {
overflow-y: hidden;
}
</style>
また、水平スクロールバーのみを非表示にしたい場合は、次を使用しますoverflow-x
。
<style type="text/css">
body {
overflow-x: hidden;
}
</style>
注:スクロール機能も無効になります。スクロールバーを非表示にして、スクロール機能を非表示にしたい場合は、以下の回答を参照してください。
hidden
スクロールに設定されている場合、マウススクロールホイールで動作します。Firefoxでは、スクロールはマウススクロールホイールでは機能しません。これを理解するにはしばらく時間がかかりました。
overflow: hidden
スクロールを無効にするアサーションのポイントはわかりません。スクロールバーを非表示にしたい場合、最初にスクロールするコンテンツがないため、おそらくコントロールは不要であると見なされます。あるいは、完全にスクロールできるようにしたくないだけかもしれません。
WebKitは、標準のCSSルールで非表示にできるスクロールバーの疑似要素をサポートしています。
#element::-webkit-scrollbar {
display: none;
}
すべてのスクロールバーを非表示にしたい場合は、
::-webkit-scrollbar {
display: none;
}
復元について確信がありません-これはうまくいきましたが、それを行う正しい方法があるかもしれません:
::-webkit-scrollbar {
display: block;
}
もちろん、いつでもを使用width: 0
できます。これはで簡単に復元できますwidth: auto
が、私はwidth
可視性の微調整を悪用するのが好きではありません。
Firefox 64はデフォルトで実験的なscrollbar-widthプロパティをサポートするようになりました(63は設定フラグの設定が必要です)。Firefox 64でスクロールバーを非表示にするには:
#element {
scrollbar-width: none;
}
現在のブラウザが疑似要素またはのいずれかをサポートしているかどうかを確認するにはscrollbar-width
、次のスニペットを試してください。
(水平バーも非表示になるため、これは実際には質問に対する正しい答えではないことに注意してください。ただし、Googleがここに私をポイントしたときに私が探していたので、とにかく投稿します。)
あなたが質問をするときは、「ブラウザのスクロールバーは、単に非表示にしたりカモフラージュのではなく、何らかの方法で除去することができる」ことができないため、誰もが「不可」と言うだろう削除 Aにすべてのブラウザからスクロールバーを準拠し、相互互換性のある方法であり、それからユーザビリティの議論全体があります。
ただし、Webページのオーバーフローを許可しない場合は、ブラウザーがスクロールバーを生成して表示する必要がなくなる可能性があります。
これは、ブラウザーが通常私たちに代わって行うのと同じ動作を積極的に代用し、ブラウザーに感謝の意を示すが、感謝の意志は知らせないことを意味するだけです。スクロールバーを削除しようとするのではなく(誰もが可能ではないことがわかっています)、スクロールを回避して(完全に実行可能)、作成してより詳細に制御できる要素内でスクロールします。
オーバーフローを非表示にしたdivを作成します。ユーザーがスクロールしようとしたときに検出しますが、overflow:hidden ..でスクロールするブラウザー機能を無効にしているため検出できません。代わりに、これが発生したときにJavaScriptを使用してコンテンツを上に移動します。これにより、ブラウザのデフォルトのスクロールなしで独自のスクロールを作成するか、iScrollなどのプラグインを使用します。
徹底するために; スクロールバーを操作するすべてのベンダー固有の方法:
*これらのプロパティはCSS仕様の一部ではなく、承認もベンダーも接頭辞が付いていませんが、Internet ExplorerおよびKonquerorで機能します。これらは、各アプリケーションのユーザースタイルシートでローカルに設定することもできます。Internet Explorerでは、[アクセシビリティ]タブの下にあり、Konquerorでは[スタイルシート]タブの下にあります。
body, html { /* These are defaults and can be replaced by hexadecimal color values */
scrollbar-base-color: aqua;
scrollbar-face-color: ThreeDFace;
scrollbar-highlight-color: ThreeDHighlight;
scrollbar-3dlight-color: ThreeDLightShadow;
scrollbar-shadow-color: ThreeDDarkShadow;
scrollbar-darkshadow-color: ThreeDDarkShadow;
scrollbar-track-color: Scrollbar;
scrollbar-arrow-color: ButtonText;
}
Internet Explorer 8の時点で、これらのプロパティはMicrosoftによってプレフィックスが付けられたベンダーでしたが、W3Cによってまだ承認されていませんでした。
-ms-scrollbar-base-color
-ms-scrollbar-face-color
-ms-scrollbar-highlight-color
-ms-scrollbar-3dlight-color
-ms-scrollbar-shadow-color
-ms-scrollbar-darkshadow-color
-ms-scrollbar-base-color
-ms-scrollbar-track-color
Internet Explorerではscroll
、スクロールバーを無効または有効にするかどうかを設定できます。スクロールバーの位置の値を取得するためにも使用できます。
Microsoft Internet Explorer 6以降では、!DOCTYPE
宣言を使用して標準準拠モードを指定すると、この属性はHTML要素に適用されます。標準準拠モードが指定されていない場合は、以前のバージョンのInternet Explorerと同様に、この属性はに適用されるBODY
要素、NOTHTML
要素。
.NETを使用する場合System.Windows.Controls.Primitives
、プレゼンテーションフレームワークのScrollBarクラスがスクロールバーのレンダリングを担当することにも注意してください。
http://msdn.microsoft.com/en-us/library/ie/ms534393(v=vs.85).aspx
スクロールバーのカスタマイズに関連するWebKit拡張機能は次のとおりです。
::-webkit-scrollbar {} /* 1 */
::-webkit-scrollbar-button {} /* 2 */
::-webkit-scrollbar-track {} /* 3 */
::-webkit-scrollbar-track-piece {} /* 4 */
::-webkit-scrollbar-thumb {} /* 5 */
::-webkit-scrollbar-corner {} /* 6 */
::-webkit-resizer {} /* 7 */
これらはそれぞれ、追加の疑似セレクターと組み合わせることができます。
:horizontal
–水平方向の疑似クラスは、水平方向のスクロールバー部分に適用されます。:vertical
–垂直疑似クラスは、垂直方向のスクロールバー部分に適用されます。:decrement
–デクリメント疑似クラスは、ボタンとトラックピースに適用されます。これは、ボタンまたはトラックピースが使用時にビューの位置を減らすかどうかを示します(たとえば、垂直スクロールバーの上、水平スクロールバーの左)。:increment
–インクリメント疑似クラスは、ボタンとトラックピースに適用されます。これは、ボタンまたはトラックピースが使用されたときにビューの位置を増分するかどうかを示します(たとえば、垂直スクロールバーを下に、水平スクロールバーを右に)。:start
–スタート疑似クラスは、ボタンとトラックピースに適用されます。オブジェクトがサムの前に配置されているかどうかを示します。:end
– end疑似クラスは、ボタンとトラックピースに適用されます。オブジェクトがサムの後に配置されているかどうかを示します。:double-button
–二重ボタン疑似クラスは、ボタンとトラックピースに適用されます。ボタンが、スクロールバーの同じ端にあるボタンのペアの一部であるかどうかを検出するために使用されます。トラックピースの場合は、トラックピースがボタンのペアに隣接しているかどうかを示します。:single-button
–単一ボタン疑似クラスは、ボタンとトラックピースに適用されます。ボタン自体がスクロールバーの最後にあるかどうかを検出するために使用されます。トラックピースの場合、トラックピースがシングルトンボタンに隣接しているかどうかを示します。:no-button
–トラックピースに適用され、トラックピースがスクロールバーの端まで実行されるかどうか、つまりトラックのその端にボタンがないかどうかを示します。:corner-present
–すべてのスクロールバーに適用され、スクロールバーのコーナーが存在するかどうかを示します。:window-inactive
–すべてのスクロールバーに適用され、スクロールバーを含むウィンドウが現在アクティブであるかどうかを示します。(最近のナイトリーでは、この疑似クラスが:: selectionにも適用されるようになりました。コンテンツを操作できるように拡張し、新しい標準疑似クラスとして提案する予定です。)これらの組み合わせの例
::-webkit-scrollbar-track-piece:start { /* Select the top half (or left half) or scrollbar track individually */ }
::-webkit-scrollbar-thumb:window-inactive { /* Select the thumb when the browser window isn't in focus */ }
::-webkit-scrollbar-button:horizontal:decrement:hover { /* Select the down or left scroll button when it's being hovered by the mouse */ }
addWindowScrollHandler public static HandlerRegistration addWindowScrollHandler(Window.ScrollHandler handler)
Window.ScrollEventハンドラーを追加しますパラメーター:handler-ハンドラー戻り値:ハンドラーの登録を返します[ source ](http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/client/Window.html# addWindowScrollHandler(com.google.gwt.user.client.Window.ScrollHandler) )
Mozillaにはスクロールバーを操作するための拡張機能がいくつかありますが、それらはすべて使用しないことをお勧めします。
-moz-scrollbars-none
これの代わりにoverflow:hiddenを使用することをお勧めします。-moz-scrollbars-horizontal
オーバーフローxに似ています-moz-scrollbars-vertical
オーバーフローyに類似-moz-hidden-unscrollable
ユーザープロファイル設定内でのみ内部的に機能します。XMLルート要素のスクロールを無効にし、矢印キーとマウスホイールを使用したWebページのスクロールを無効にします。
これは私が知る限り実際には役に立ちませんが、Firefoxでスクロールバーを表示するかどうかを制御する属性は(参照リンク)であることに注意してください。
他のいくつかの回答で前述したように、これは十分に自明であるイラストです。
興味があるからといって、スクロールバーの起源について知りたかったのですが、これらは私が見つけた最高のリファレンスです。
HTML5仕様ドラフトでは、seamless
スクロールバーがiFrameに表示されないように属性を定義して、ページ上の周囲のコンテンツとブレンドできるようにしました。ただし、この要素は最新のリビジョンでは表示されません。
scrollbar
BarPropオブジェクトはの子であるwindow
オブジェクトとスクロール機構、またはいくつかの同様のインターフェースの概念が含まれているユーザインタフェース要素を表します。スクロールバーが表示されている場合window.scrollbars.visible
に戻りtrue
ます。
interface Window {
// The current browsing context
readonly attribute WindowProxy window;
readonly attribute WindowProxy self;
attribute DOMString name;
[PutForwards=href] readonly attribute Location location;
readonly attribute History history;
readonly attribute UndoManager undoManager;
Selection getSelection();
[Replaceable] readonly attribute BarProp locationbar;
[Replaceable] readonly attribute BarProp menubar;
[Replaceable] readonly attribute BarProp personalbar;
[Replaceable] readonly attribute BarProp scrollbars;
[Replaceable] readonly attribute BarProp statusbar;
[Replaceable] readonly attribute BarProp toolbar;
void close();
void focus();
void blur();
// Truncated
History APIには、ページの読み込み時にスクロール位置を維持するために、ページナビゲーションでのスクロール復元機能も含まれています。
window.history.scrollRestoration
scrollrestorationのステータスを確認したり、ステータスを変更したりできます(appending。Auto ="auto"/"manual"
がデフォルト値です。これを手動に変更すると、ユーザーがアプリの履歴をたどるときに必要になる可能性のあるスクロールの変更を、開発者が所有することになります。 。必要に応じて、history.pushState()を使用して履歴エントリをプッシュするときに、スクロール位置を追跡できます。
これdiv
は、オーバーフローを非表示にし、内部をにdiv
設定したラッパーで実現できauto
ます。
内側div
のスクロールバーを削除するには、内側にdiv
負のマージンを適用して、外側のビューポートから引き出しますdiv
。次に、内側のdivに同じパディングを適用して、コンテンツが表示されるようにします。
<div class="hide-scroll">
<div class="viewport">
...
</div>
</div>
.hide-scroll {
overflow: hidden;
}
.viewport {
overflow: auto;
/* Make sure the inner div is not larger than the container
* so that we have room to scroll.
*/
max-height: 100%;
/* Pick an arbitrary margin/padding that should be bigger
* than the max width of all the scroll bars across
* the devices you are targeting.
* padding = -margin
*/
margin-right: -100px;
padding-right: 100px;
}
height: inherited
は.viewport
CSSにありました。
100%
より用途が広く、仕事をします。
-100px
と100px
??
これは私にとって単純なCSSプロパティで機能します:
.container {
-ms-overflow-style: none; // Internet Explorer 10+
scrollbar-width: none; // Firefox
}
.container::-webkit-scrollbar {
display: none; // Safari and Chrome
}
古いバージョンのFirefoxの場合は、次を使用します。 overflow: -moz-scrollbars-none;
overflow: -moz-scrollbars-none;
、スクロールバーは正常に削除されますが、スクロールする機能も削除されます。に設定overflow: hidden
することもでき.container
ます。
-moz-scrollbars-none
「これは廃止されたAPIであり、動作が保証されなくなった」と読みました。
これが私の解決策です。理論的にはすべての最新のブラウザーをカバーしています。
html {
scrollbar-width: none; /* For Firefox */
-ms-overflow-style: none; /* For Internet Explorer and Edge */
}
html::-webkit-scrollbar {
width: 0px; /* For Chrome, Safari, and Opera */
}
html
スクロールバーを非表示にする任意の要素で置き換えることができます。
注:私が投稿しているコードがすでにカバーされているかどうかを確認するために、他の19の回答をざっと調べました。2019年の現状をまとめた回答は1つもないようですが、詳細については詳しく説明しています。これが他の誰かから言われ、私がそれを逃した場合はお詫びします。
あなたがまだ興味があるなら、私はあなたのための回避策を見つけたと思います。今週は最初の週ですが、うまくいきました...
<div class="contentScroller">
<div class="content">
</div>
</div>
.contentScroller {overflow-y: auto; visibility: hidden;}
.content {visibility: visible;}
モバイルデバイスのスクロールバーを非表示にするソリューションを探している場合は、ピーターの答えに従ってください!
ここだjsfiddle水平スクロールバーを非表示にするには、以下のソリューションを使用しています、。
.scroll-wrapper{
overflow-x: scroll;
}
.scroll-wrapper::-webkit-scrollbar {
display: none;
}
Android 4.0.4搭載のSamsungタブレット(ネイティブブラウザーとChromeの両方のIce Cream Sandwich)とiOS 6搭載のiPad(SafariとChromeの両方)でテストされています。
.noscroll {
width: 150px;
height: 150px;
overflow: auto; /* Or hidden, or visible */
}
次にいくつかの例を示します。
他の人々がすでに言ったように、CSSを使用してくださいoverflow
。
ただし、ユーザーが(スクロールバーが表示されていない状態で)そのコンテンツをスクロールできるようにするには、JavaScriptを使用する必要があります。
解決策はここで私の回答をご覧ください:マウス/キーボードでスクロールできる間はスクロールバーを非表示にします
スクロールバーを非表示にするクロスブラウザーアプローチ。
Edge、Chrome、Firefox、Safariでテストされています
マウスホイールでスクロールできる間、スクロールバーを非表示にします。
/* Make parent invisible */
#parent {
visibility: hidden;
overflow: scroll;
}
/* Safari and Chrome specific style. Don't need to make parent invisible, because we can style WebKit scrollbars */
#parent:not(*:root) {
visibility: visible;
}
/* Make Safari and Chrome scrollbar invisible */
#parent::-webkit-scrollbar {
visibility: hidden;
}
/* Make the child visible */
#child {
visibility: visible;
}
スクロールを機能させる場合は、スクロールバーを非表示にする前に、スタイリングを検討してください。OS XとモバイルOSの最新バージョンにはスクロールバーがあり、マウスでつかむのは実用的ではありませんが、非常に美しくニュートラルです。
スクロールバーを非表示にするには、John Kurlakのテクニックがうまく機能します。ただし、ホイール付きのマウスがない限り、タッチパッドを持たないFirefoxユーザーがスクロールする方法はありませんが、通常は垂直方向にしかスクロールできません。 。
ジョンの技法は3つの要素を使用します。
外側の要素とコンテンツ要素のサイズを同じに設定してパーセンテージの使用を排除することが可能でなければなりませんが、適切な調整で機能しない他のことは考えられません。
私の最大の懸念は、ブラウザのすべてのバージョンがスクロールバーを設定して、オーバーフローしたコンテンツを表示できるようにするかどうかです。現在のブラウザーでテストしましたが、古いブラウザーではテストしていません。
恩赦私のSASS ; P
%size {
// set width and height
}
.outer {
// mask scrollbars of child
overflow: hidden;
// set mask size
@extend %size;
// has absolutely positioned child
position: relative;
}
.middle {
// always have scrollbars.
// don't use auto, it leaves vertical scrollbar showing
overflow: scroll;
// without absolute, the vertical scrollbar shows
position: absolute;
}
// prevent text selection from revealing scrollbar, which it only does on
// some webkit based browsers.
.middle::-webkit-scrollbar {
display: none;
}
.content {
// push scrollbars behind mask
@extend %size;
}
OS Xは10.6.8です。WindowsはWindows 7です。
@mixin{}
、あなたは何だろう%size{}
、CSSセレクタで、その後の呼び出しを@extend %size;
。ミックスインは通常、変数をプルして結果を返すときに使用されます。プレースホルダー(別名@extend)は、「関数」が不要な、このような単純な繰り返しコード用です。
この質問を読んでいる他の人overflow: hidden
に、body
要素の設定(またはオーバーフローy)によってスクロールバーが非表示にならないことを指摘したいと思いました。
html
要素を使用する必要がありました。
自動非表示、リトルバージョン、スクロールonly-yまたはonly-xなどのいくつかのオプションを使用してWebKitバージョンを作成しました。
._scrollable{
@size: 15px;
@little_version_ratio: 2;
@scrollbar-bg-color: rgba(0,0,0,0.15);
@scrollbar-handler-color: rgba(0,0,0,0.15);
@scrollbar-handler-color-hover: rgba(0,0,0,0.3);
@scrollbar-coner-color: rgba(0,0,0,0);
overflow-y: scroll;
overflow-x: scroll;
-webkit-overflow-scrolling: touch;
width: 100%;
height: 100%;
&::-webkit-scrollbar {
background: none;
width: @size;
height: @size;
}
&::-webkit-scrollbar-track {
background-color:@scrollbar-bg-color;
border-radius: @size;
}
&::-webkit-scrollbar-thumb {
border-radius: @size;
background-color:@scrollbar-handler-color;
&:hover{
background-color:@scrollbar-handler-color-hover;
}
}
&::-webkit-scrollbar-corner {
background-color: @scrollbar-coner-color;
}
&.little{
&::-webkit-scrollbar {
background: none;
width: @size / @little_version_ratio;
height: @size / @little_version_ratio;
}
&::-webkit-scrollbar-track {
border-radius: @size / @little_version_ratio;
}
&::-webkit-scrollbar-thumb {
border-radius: @size / @little_version_ratio;
}
}
&.autoHideScrollbar{
overflow-x: hidden;
overflow-y: hidden;
&:hover{
overflow-y: scroll;
overflow-x: scroll;
-webkit-overflow-scrolling: touch;
&.only-y{
overflow-y: scroll !important;
overflow-x: hidden !important;
}
&.only-x{
overflow-x: scroll !important;
overflow-y: hidden !important;
}
}
}
&.only-y:not(.autoHideScrollbar){
overflow-y: scroll !important;
overflow-x: hidden !important;
}
&.only-x:not(.autoHideScrollbar){
overflow-x: scroll !important;
overflow-y: hidden !important;
}
}
私のHTMLは次のとおりです。
<div class="container">
<div class="content">
</div>
</div>
div
スクロールバーを非表示にする場所にこれを追加します。
.content {
position: absolute;
right: -100px;
overflow-y: auto;
overflow-x: hidden;
height: 75%; /* This can be any value of your choice */
}
これをコンテナに追加します
.container {
overflow-x: hidden;
max-height: 100%;
max-width: 100%;
}
私の答えはoverflow:hidden;
、jQueryを使用しても、スクロールします:
たとえば、マウスホイールで水平にスクロールします。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type='text/javascript' src='/js/jquery.mousewheel.min.js'></script>
<script type="text/javascript">
$(function() {
$("YourSelector").mousewheel(function(event, delta) {
this.scrollLeft -= (delta * 30);
event.preventDefault();
});
});
</script>
overflow
CSS属性で操作できると思いますが、ブラウザのサポートは限られています。ある情報筋によると、それはInternet Explorer 5(およびそれ以降)、Firefox 1.5(およびそれ以降)、およびSafari 3(およびそれ以降)であり、おそらくあなたの目的には十分です。
Scrolling、Scrolling、Scrollingは良い議論があります。