ホームページ >ウェブフロントエンド >htmlチュートリアル >CSS_html/css_WEB-ITnoseでスクロールバーを非表示にする簡単な実装方法

CSS_html/css_WEB-ITnoseでスクロールバーを非表示にする簡単な実装方法

WBOY
WBOYオリジナル
2016-06-24 11:33:231245ブラウズ

xhtml のスクロール バーを非表示にする

ie6 を使用してフレーム化された xhtml ページを閲覧すると、デフォルトで水平スクロール バーと垂直スクロール バーが一緒に表示されます。これは

Firefox では正常なバグです。それは、XHTML 1.0 の暫定的な doctype の解釈に欠陥があるということです。

このバグには一般に 3 つの解決策があります。

原則: 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 をページから削除すると、ページには何も表示されなくなります。 doctype であり、デフォルトの表示は次のようになります。メソッドは html4.01 ですが、XHTML 1.0 の暫定的な doctype を HTML 4.01 の doctype に変更する必要があります。このページの標準は html ですが、同じページで本文を定義しても効果はありません。 4.01)

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