ホームページ  >  記事  >  ウェブフロントエンド  >  CSSでスクロールバーを非表示にする方法

CSSでスクロールバーを非表示にする方法

不言
不言オリジナル
2018-06-09 15:33:351450ブラウズ

この記事では主に 3 つの方法を使用して CSS でスクロール バーを非表示にする方法を紹介します。もちろん、実際の状況に基づいて 2 番目の方法をお勧めします。この記事に興味のある友達は一緒に学んでください

xhtml でスクロール バーを非表示にする
IE6 でフレーム付きの xhtml ページを閲覧すると、デフォルトで水平スクロール バーと垂直スクロール バーが一緒に表示されます。これは IE6 のバグで、Firefox では発生します。これは正常であり、その理由は、XHTML 1.0 の暫定的な doctype の解釈における欠陥です。このバグには一般に 3 つの解決策があります。
方法 1:
コード:
プログラム コード

html { overflow-y: scroll; }

原則: の垂直表示を強制する。水平スクロールバーを無視する IE スクロールバー
利点: この問題を完全に解決し、完全な XHTML doctype を保持できるようにします。
欠点: ページに垂直スクロールバーが必要ない場合でも、垂直スクロールバーが表示されます。
方法 2: (推奨)
コード:
プログラムコード

html { overflow-x: hidden; overflow-y: auto; }

原則: 水平スクロールを非表示にし、垂直スクロールはコンテンツに応じて適応します
利点: この問題は視覚的に解決され、不要な場合は強制されません。スクロール バーが表示されます。
欠点: 水平スクロール バーが非表示になるだけです。ページに水平スクロール バーが必要な場合、ユーザーは水平スクロールできないため、画面の外側のコンテンツは表示されません。

方法 3:
コード:
プログラム コード

body { margin-right: -15px; margin-bottom: -15px; }

原理: これにより、IE がこの正確な値を追加すると、スクロール バーが必要であるという錯覚がなくなります。

長所: この問題は視覚的に解決されます。垂直スクロールはコンテンツに応じて適応されます。
短所: 15px の余白が「人工的に作成」されるため、塗りつぶされた画面領域は使用できません。 -------------------------
スタイルを設定します
元のHTMLでは、このようにページ全体を定義できます スクロールバー
プログラムコード

body{
scrollbar-3dlight-color:#D4D0C8; /*- 最外左 -*/
scrollbar-highlight-color:#fff; /*- 左二 -*/
scrollbar-face-color:#E4E4E4; /*- 面子 -*/
scrollbar-arrow-color:#666; /*- 箭头 -*/
scrollbar-shadow-color:#808080; /*- 右二 -*/
scrollbar-darkshadow-color:#D7DCE0; /*- 右一 -*/
scrollbar-base-color:#D7DCE0; /*- 基色 -*/
scrollbar-track-color:#;/*- 滑道 -*/
}

しかし、同じコードを xhtml に適用すると機能しません。多くの友人が同じ問題に遭遇していると思います。では、xhtml でスクロール バー スタイルを適用するにはどうすればよいでしょうか?次のコードを見てください

プログラム コード

html{
scrollbar-3dlight-color:#D4D0C8; /*- 最外左 -*/
scrollbar-highlight-color:#fff; /*- 左二 -*/
scrollbar-face-color:#E4E4E4; /*- 面子 -*/
scrollbar-arrow-color:#666; /*- 箭头 -*/
scrollbar-shadow-color:#808080; /*- 右二 -*/
scrollbar-darkshadow-color:#D7DCE0; /*- 右一 -*/
scrollbar-base-color:#D7DCE0; /*- 基色 -*/
scrollbar-track-color:#;/*- 滑道 -*/
}

このコードと前の段落の唯一の違いは、css で定義された要素の 1 つは body で、もう 1 つは html であることです。もう一度テストして、HTML ページの
「body」を「html」に変更してテストし、それでも効果が得られることを確認してみましょう。なぜ?

文字通り、xhtml には html よりも x が 1 つ多いのですが、この x は実際には xml であるのに、なぜ xml を追加する必要があるのでしょうか。実際、最も根本的な理由は、HTML をより構造化して標準化することです (HTML は本当に悪いものなので)。

htmlで定義するのはbodyです。htmlはあまり標準的ではないので、これは機能しますが、xhtmlでは機能しません。
図を見ると、bodyタグ自体がルート要素ではなく、htmlだけがルート要素であることがわかります。ルート要素であり、ページのスクロール バーもルート要素に属します。このため、body の定義は効果がありません。これは、定義した内容が子要素にすぎないためです。原理はわかったので、実験してみましょう。「body」または「xhtml」の定義を「*」に置き換えると、* が定義であるため、
プログラム コード

*{ 
scrollbar-3dlight-color:#D4D0C8; /*- 最外左 -*/
scrollbar-highlight-color:#fff; /*- 左二 -*/
scrollbar-face-color:#E4E4E4; /*- 面子 -*/
scrollbar-arrow-color:#666; /*- 箭头 -*/
scrollbar-shadow-color:#808080; /*- 右二 -*/
scrollbar-darkshadow-color:#D7DCE0; /*- 右一 -*/
scrollbar-base-color:#D7DCE0; /*- 基色 -*/
scrollbar-track-color:#;/*- 滑道 -*/
}

は html と xhtml の両方に渡されます。もちろん、「html」タグも含まれます。

(追記: 実際、html と xhtml の違いは、XHTML 1.0 の暫定的な doctype の有無の違いではありません。しかし、XHTML 1.0 の暫定的な doctype をページから削除すると、そのページはデフォルトの表示モードは html4.01 ですが、このページの標準は html であっても、同じページで本文を定義しても影響を受けないように、XHTML 1.0 の暫定的な doctype を変更する必要があります。 4.01)

上記はこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトに注目してください。

関連する推奨事項:

css+htmlでシンプルなカレンダーを実装


CSS3で丸い画像と楕円形の画像を作成


以上がCSSでスクロールバーを非表示にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。