※本ページはプロモーションが含まれています。
本記事は、「レスポンシブデザインを実装していたら画面からはみ出るの何故…」と思いつつ
・異なるデバイスでもコンテンツがちゃんと表示されるデザインを実装したい人
・CSS 単位の「vw」「vh」「vmin」「vmax」違いとを知りたい人
・デザインが崩れる原因やスクロールバーが表示される問題を解決したい人
上記のような、悩みや疑問を持っている、プログラミングを勉強したい人向けに現役エンジニアが解説します。
この記事では、「前半」では「vwとは?CSS単位の基本を解説!」を「後半」では「100vw vs 100%!ブラウザ表示における違いと適切な使用法」や「画面からはみ出る!100vwのスクロールバー問題」に対して詳しく解説します。
プログラミング未経験の方でも、読みやすい内容なので、本記事を読んで未来に向けて、一歩を踏み出しましょう。
それでは、ご一読ください!
コーディングをしていると、要素の大きさや位置を指定することがよくありますよね。その指定には、ピクセルやパーセンテージといった単位を使いますが、今回は特別な単位「vw」についてお話ししましょう。
他にも「vh」や「vmin」や「vmax」という似たような単位もあります。これらを組み合わせて使うことで、幅広い画面に対応したデザインが可能です。
vw、vhとは?CSS単位の特徴を理解して使いこなそう!
ウェブページのデザインで要素の大きさや位置を指定する際に、ピクセル(px)だけでなく、「vw」と「vh」という特別な単位を使うことがあります。これらの単位は、ウェブページをさまざまなデバイスや画面サイズに適応させる際に役立ちます。
「vw」とは
Viewport Width(ビューポートの幅)の略で、画面の幅を基準に大きさを指定する単位です。1vwは画面幅の1%を表します。
例えば、画面幅が1000pxの場合、「1vwは10px」に相当します。これを使うと、画面幅に応じて要素の大きさを自動的に調整できるのです。
「vh」とは
Viewport Height(ビューポートの高さ)の略で、画面の高さを基準に大きさを指定する単位です。1vhは画面高さの1%を表します。これも「vw」と同じく、画面の高さに合わせて要素の大きさを調整できるので、レスポンシブデザインに適しています。
例えば、画面全体の幅の50%を占める要素を作りたい場合、「width: 50vw;」というように指定します。これにより、どんなデバイスや画面サイズでも自動的に適切な大きさになります。
このサンプルコードは、vwとvh単位を使用して2つのボックスを表示する例です。
containerクラスで画面を中央に配置し、boxクラスでボックスを指定の幅と高さで作成します。各ボックスの背景色やテキストの色なども指定されています。
vmin、vmaxとは?CSS単位の特徴を理解して使いこなそう!
ウェブデザインで要素の大きさや位置を指定する際に、通常のピクセル(px)やパーセンテージ(%)の他に、「vmin」と「vmax」という新しい単位があります。これらの単位は、画面の幅と高さを基準にして要素を柔軟に調整するのに役立ちます。
「vmin」とは
ビューポート(画面)の幅と高さのうち、短い方を基準にした大きさを表す単位です。1vminはビューポートの幅や高さの1%に相当します。これを使うと、画面の狭い方向に合わせて要素の大きさを調整できます。
「vmax」とは
ビューポートの幅と高さのうち、大きい方を基準にした大きさを表す単位です。1vmaxもビューポートの幅や高さの1%を意味します。これを利用すると、画面の広い方向に合わせて要素を調整できます。
「vmin」と「vmax」のサンプルコード
vminとvmax単位を使用して2つのボックスを表示する例です。containerクラスで画面を中央に配置し、boxクラスでボックスを指定の幅と高さで作成します。各ボックスの背景色やテキストの色なども指定されています。
具体例を挙げると、「width: 50vmin;」と指定すると、要素の幅がビューポートの幅と高さのうち短い方の50%になります。
同様に、「height: 70vmax;」とすると、要素の高さがビューポートの幅と高さのうち大きい方の70%になります。
実務をしていると、コーディングをしている際に要素の幅を決めるときに、「100vw」と「100%」という2つの方法があります。これらの違いを理解して、どの場面でどちらを使うべきか見てみましょう。
100vwの場合
前の章(vw、vhとは?CSS単位の特徴を理解して使いこなそう!)でも書きましたが、ビューポート(画面)の幅を100%表す単位です。つまり、画面の幅いっぱいに要素を広げたい場合に使います。たとえば、ヘッダーやフッターを画面全体に広げるときに便利です。ただし、スクロールバーの幅も含まれるので、要素が画面からはみ出ることがあります。
100%の場合
親要素の幅を100%表す単位です。親要素が決まっている場合、その要素の幅に合わせて要素が調整されます。これは、親要素内に収める要素を作るときに使います。ただし、親要素の幅が具体的に指定されていないと、予期しない結果になることがあります。
- 100vwは、画面全体をカバーしたい場合に使います。例えば、ヘッダーやフッターが該当します。
- 100%は、要素を親要素に合わせたいときに使います。例えば、コンテナ内のコンテンツを調整する際に有用です。
「100vw」と「100%」のサンプルコード
コーディングをで要素の幅を調整するとき、100vwを使うことがありますが、この方法だと画面の幅に合わせて要素を広げるんです。でも、その際にスクロールバーの幅も含まれるから、画面からはみ出てしまうことがあります。これをどう解決するか、簡単に説明しますね。
- overflow: hidden; を使う方法
- margin-right を調整する方法
- padding を利用する方法
- calc() 関数を使う方法
1.overflow: hidden; の利用
親要素に overflow: hidden; って指示すると、スクロールバーを見えなくして、要素がはみ出るのを防げます。ただし、スクロールバーが出なくなるから、コンテンツが見切れる可能性もあるので、注意してね。
2.margin-right の調整
要素に margin-right: -[スクロールバーの幅]; を設定し、スクロールバーの幅分だけマイナスのマージンを付与します。これによって、要素が縮小され、はみ出しを回避できます。
3.padding の活用
要素に padding-right: [スクロールバーの幅]; を指定することで、スクロールバーの分だけ隙間を作成します。これにより、スクロールバーが要素と重なるのを防止できます。
4.calc() 関数の使用
calc(100vw – [スクロールバーの幅]) のように、calc() 関数を活用してスクロールバーの幅を引いた値を設定します。これによって、スクロールバーの問題を解消できます。
スクロールバー問題を解決する方法とは?のサンプルコード
FAQ
CSSでサイズを調整する際によくあるご質問
A
- 100vw:ビューポート(画面)の幅を100%表す単位
- 100%:親要素の幅を100%表す単位です。
A
- overflow: hidden; を使う方法
- margin-right を調整する方法
- padding を利用する方法
- calc() 関数を使う方法
A
- 100vh(Viewport Height)
これはビューポート(画面)の高さの100%を表す単位です。つまり、画面の縦方向のサイズいっぱいに要素を広げるために使用します。 - 100vw(Viewport Width)
これはビューポート(画面)の幅の100%を表す単位です。要素を画面の横方向に合わせて広げたり、ヘッダーやフッターを画面いっぱいに広げる場合に使用します。
今回は、vwとは?CSS単位の基本を解説についてご紹介しました。
それでは、最後にもう一度、おさらいしましょう。
- CSS vwとは?CSS単位の基本を解説!
- 100vw vs 100%!ブラウザ表示における違いと適切な使用法とは
- 画面からはみ出る!100vwのスクロールバー問題を解決する方法とは?
もう一度、最初から「CSS vwとは?CSS単位の基本を解説!」を読む↑
Twitterも見てみる?