ビューポートを基準とした単位 vw、vh、vmin、vmax

ビューポートを基準とした単位
vw、vh、vmin、vmax についてまとめました。
ビューポートとは?
これからご紹介する単位は、どれも「ビューポート(Viewport)」を基準とした単位です。
ビューポートとは、ブラウザの表示領域のことを指します。

vw(Viewport Width)
vwとは、ビューポートの幅を基準とした相対単位です。
基準となるビューポートの幅をvwで表すと100vwとなります。
1vwはビューポートの幅の1%に相当します。
たとえば、ビューポートの幅が1920pxなら、1vw = 19.2px になります。
vh(Viewport Height)
vhとは、ビューポートの高さを基準とした相対単位です。
基準となるビューポートの高さをvhで表すと100vhとなります。
1vhはビューポートの高さの1%に相当します。
たとえば、ビューポートの高さが1080pxなら、1vh = 10.8px になります。
vmin(Viewport Minimum)
ビューポートの幅と高さの内、小さい方に対する相対単位です。
高さが幅より小さい場合、1vminはビューポートの高さの1%に相当します。
幅が高さより小さい場合、1vminはビューポートの幅の1%に相当します。
たとえば、ビューポートの幅が1920px、高さが1080pxなら、1vmin = 10.8px になります。
vmax(Viewport Max)
ビューポートの幅と高さの内、大きい方に対する相対単位です。
高さが幅より大きい場合、1vmaxはビューポートの高さの1%に相当します。
幅が高さより大きい場合、1vmaxはビューポートの幅の1%に相当します。
たとえば、ビューポートの幅が1920px、高さが1080pxなら、1vmax = 19.2px になります。
%との違い
%は、親要素の幅や高さに依存します。
vw、vh は親要素、子要素の紐付けがない為、入れ子を気にせずに指定することが出来ます。
100vwを使う際は注意が必要
width: 100vw;はスクロールバーの幅を含みます。
スクロールバーが表示されていない時は問題ありませんが、縦のスクロールバーが表示されると、その分はみ出してしまうため、意図しない横スクロールバーが発生してしまいます。

【回避策】
・width: 100vw;は使わずwidth: 100%;を使う
・どうしてもwidth: 100vw;を使う必要がある場合は、width: 100vw;の要素の親要素にoverflow-x: hidden;を指定
![MARKLEAPS[マークリープス]](https://markleaps.com/blog/wp-content/themes/mkl/images/00_logo.png)


![[CSS] shape-outside プロパティで画像にテキストを回り込ませる方法](https://markleaps.com/blog/wp-content/uploads/2025/09/css-shape-outside-500x254.jpg)
![[HTML・CSS] 説明リストdlのdtとddを横並びに表示する方法(コピペで使えるコード付き)](https://markleaps.com/blog/wp-content/uploads/2025/09/html-css-dl-flex-grid-500x254.jpg)
![[CSS] 疑似クラス is() とwhere() の使い方と違い](https://markleaps.com/blog/wp-content/uploads/2023/11/css-is-where-500x254.jpg)