8

ブラウザ ウィンドウの右端を超えるコンテンツを含む Web ページがあります。下部のスクロールバーをオフに設定overflow-x: hiddenしましたが、トラックパッドで水平方向にスクロールできますが、これは私が望んでいるものではありません。<body>

ブラウザが水平方向にスクロールしないようにする方法はありますか?

補足として: Safari 4.0.4 は時々水平方向にスクロールするだけで、スクロールが「ベタベタ」で「ガクガク」と感じるのに対し、Firefox は常に水平方向にスムーズにスクロールします。

4

6 に答える 6

5

あなたはCSSで設定しようとすることができます:

html{
  overflow-x: hidden;
}

bodyセレクターを使用する代わりに。私はそれを試し、Firefoxで動作しました。

于 2010-04-15T20:12:17.800 に答える
3

本当の問題は、なぜコンテンツが意図したページのサイズから溢れ出るのかということだと思います。このコンテンツは、ユーザーに実際に見せたくないものですか?その場合は、どこかのdivに入れて、表示をnoneに設定します。これにより、オーバーフローの問題を完全に回避できます。

コンテナをオーバーフローさせたい正当な理由がある場合は、コンテナのサイズを明示的に設定してから、overflow-xを非表示に設定します。私はそれをテストしていませんが、それは現在の振る舞いを妨げるはずです。そうでない場合は、bodyタグではなくdivを使用してみてください。bodyタグ自体で動作しているため、ブラウザの動作がおかしい可能性があります。

于 2010-04-17T16:09:44.373 に答える
2

Chrome にアクセスして、デスクトップで開発者ツールを開きます。オーバーフロー x プロパティを削除します。次に、ページ上の各親要素の削除に進みます。水平スクロール バーが消えたら、問題が見つかったことがわかります。次に、その要素に飛び込みます。私の賭けは、あなたが100%の幅を持っていて、それにマージンが置かれているということです. その場合は余白を取り除いてください。

于 2013-05-10T16:16:56.407 に答える
1

他のすべてが失敗した場合は、Javascriptを使用して、window.scrollTo(xpos、ypos)を使用してブラウザーを常に左にスクロールさせることができます。xposの場合は、0を使用し、yposの場合は、垂直スクロールを許可することを前提として、ユーザーの現在のスクロール位置を取得する必要があります。

関数呼び出しは、window.onscrollイベントハンドラー、または100ミリ秒ごとに実行されるjavascript間隔のいずれかに配置できます。君による。コード例が必要な場合は、質問してください。

于 2010-04-16T17:13:50.260 に答える
0

これは、例があれば理解しやすいでしょう。

これは長い URL ですか、それとも空白のないものですか? 要素をwhite-space:nowrap;設定していますか?

定義されたサイズ (ビューポートに収まるサイズ) のコンテナーがある場合、テキストは正しく表示されます (スペースのない長い行でない限り)。

于 2010-04-17T05:17:49.463 に答える