width100vwとwidth100%の違いって何?

WEB関連

width100%もwidth100vwのどちらもブラウザの幅いっぱいに表示する指定ですが、範囲が少し違います。

どう違うのか見ていきましょう。

viewportビューポートと%パーセンテージ

width100%は言わずもがな、要素の幅いっぱいの表示を意味します。

1%だと1/100ですね。

親要素が1000pxなら100%表示は1000px。すごく単純でわかりやすいです。

では、viewportはブラウザの幅と高さが基準になっています。「表示領域」と呼ばれることが一般的なようです。

1vwはブラウザ幅の1/100です。

ブラウザのモニターいっぱいで表示されているときはモニター幅が100vw。ブラウザをモニターの半分の幅にしてもブラウザ幅に依存するのでモニターの半分の幅が100vwになります。

100vhになると表示領域の高さいっぱいということになります。

パーセンテージもビューポートも100という数字を使うので同じようにみえますが、ベースとするものが違うので、見え方が少し変わります。

同じに見えるが、同じじゃないwidth 100%と100vw

%パーセントでもviewportでも同じならなんとなくかっこいいviewportで全画面表示はvw/vhで指定すればいいんじゃない?って思う人も多いはず。

でもね、

気・を・つ・け・て!

100vwの幅はスクロールバー分が含むブラウザ幅になります。
下の画像のwidthに100vwをかけてみました。

横スクロールバーが現れました。

width 100vwで画像を指定した時のスクショ

100vwにすると、スクロールバーを含んだ幅を100とするので、横スクロールバーが出現するのです。

サンプルを見てみましょう。width 100vwでコードも書いてみました。↓

See the Pen width100vw by chocolartwork (@chocolartwork) on CodePen.

もう一つ、横幅100%の指定を画像にかけました。横幅いっぱいに表示されて、横スクロールバーは表示されません。

width 100%で画像を指定した時のスクショ

width 100%もサンプルを見れるようにコードを書いてみました↓

See the Pen width100% by chocolartwork (@chocolartwork) on CodePen.

横スクロールバーがでても気にしないのなら、100vwはとても便利ですが、気になるようなら横幅指定はパーセンテージ100%をおすすめします。

横スクロールバーを消す方法

前任者がコーディングしたサイトを引き継ぎ、なんで横移動のバーが出てるの?消してほしい。と言われ、ここにたどり着くまでちょっと時間がかかりました。

なので、横スクロールバーを消したいときは、まずはCSSでwidth:100vwが指定されていないか探してみるのがよいかなと思います。

ちょっとしたことが見つけられなくて、もういいやーってなることもあるけど、コツコツ頑張っていきましょ^^

コメント

タイトルとURLをコピーしました