1. ホーム
  2. html

[解決済み] Chromeでスクロールバーがページの幅に加算されないようにする

2022-04-21 16:25:11

質問

Chromeで.htmlページの幅を一定に保とうとしているのですが、ちょっとした問題があります。 例えば、たくさんのコンテンツがあるページ(1)があり、ビューポートの高さをオーバーしているため、そのページ(1)には垂直スクロールバーが表示されています。ページ(2)では、同じレイアウト(メニュー、div、...など)ですが、コンテンツが少ないので、垂直スクロールバーはありません。

問題は、ページ (1) ではスクロールバーが要素をわずかに左に押しているように見えるのに対し、ページ (2) ではすべてがうまく中央に表示されることです (幅の増加?)。

私はまだHTML/CSS/JSの初心者で、これはそれほど難しいことではないと確信しているのですが、解決策を見つけることができませんでした。IE10とFireFoxでは意図したとおりに動きますが(スクロールバーが邪魔にならない)、Chromeでだけこの現象に遭遇しました。

解決するには?

スクロールバーのサイズを取得し、コンテナにマージンを適用することができます。

このようなものです。

var checkScrollBars = function(){
    var b = $('body');
    var normalw = 0;
    var scrollw = 0;
    if(b.prop('scrollHeight')>b.height()){
        normalw = window.innerWidth;
        scrollw = normalw - b.width();
        $('#container').css({marginRight:'-'+scrollw+'px'});
    }
}

hスクロールバーを削除するためのCSSです。

body{
    overflow-x:hidden;
}

てみてください。 http://jsfiddle.net/NQAzt/