気を付けよう,vwとかvhとか

windowsのスクロールバーはvwの範囲に入っている

windowで

body{ width:100vw; }

    body{
        width:100vw;
    }

にすると横スクロールバーが出る(以下はみ出る)事がある。 殆どでる。 縦スクロールバーが出ないサイト以外で出る つまり殆どのサイトで100vwを設定するとはみ出る。

これはviewportの範囲内に「スクロールバー」も含まれていいるから。 つまり

100vw(幅100%)+スクロールバー 

となっているので、横にはみ出ちゃう。

では

    body{
        width:calc(100vw - 18px);
    }

これはどうだろうか。 18pxはスクロールバーのだいたいの横幅

はみ出ない。 ところがどっこい。 今度はmacで幅が足りない。

そうですよね。 macはスクロールバーが画面端じゃなくて、浮いてる?感じだもんね。

結論(PCのwidth100vw)

1.100%が使える箇所では100%を使う 2.%でとれない箇所なら(borderとか)jsのouterWidthなどで取得したほうが良し。