CSSでスマホの横幅と画面を合わせる方法を現役デザイナーが解説【初心者向け】

初心者向けにCSSでスマホの横幅と画面を合わせる方法について解説しています。スマートフォンとPCとの解像度の違い、メタタグとviewportの使い方を説明します。実際の画面での見え方を確認しましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

CSSでスマホの横幅と画面を合わせる方法について解説します。

CSSについてそもそもよく分からないという方は、CSSの書き方について解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのオンラインブートキャンプWebデザイン講座のCSSカリキュラムをもとに執筆しています。

 

田島悠介

今回は、CSSに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

スマホの横幅と画面を合わせる方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

スマホとパソコンの解像度の違いを知ろう

解像度とは1インチあたりのピクセル数(ドット数)で DPI(Dots Per Inch) という単位で表されます。解像度×インチ数が画面のピクセル数となります。スマホもパソコンも現在は解像度が非常に高く、画面のピクセル数はハイビジョン画質(1920×1080)を超えることも珍しくなくなりました。

 

メタタグとviewportの使い方

スマホとパソコンの画面のピクセル数が共にハイビジョン画質であれば、パソコンに表示している内容をそのままスマホに表示することも可能です。しかしスマホは小さい画面で多くのピクセル数を実現しており、パソコンと比較して解像度が高い=1ピクセルあたりの大きさが小さいため、パソコンに表示している内容をそのままスマホに表示すると、とても小さく見えてしまいます。

ここで登場するのが「仮想的な画面のピクセル数」という考え方です。画面の小さいスマホは「仮想的な画面のピクセル数」を小さくすることで、見た目としての大きさを保つことができます。

「仮想的な画面のピクセル数」を指定するのが viewport メタタグです。メタタグは<head>セクションに記述する要素で <meta> で表現されます。メタタグについて詳しくは以下も参考にしてください。

MDN <meta>: 文書レベルメタデータ要素

 

[PR] HTML/CSSで挫折しない学習方法を動画で公開中

画面の幅を指定する単位について

具体的にviewportをメタタグで指定するには以下のように記述します。

<meta name="viewport" content="width=device-width,initial-scale=1">

通常はこの書き方で変更する必要は無いでしょう。widthで「仮想的な画面のピクセル数」を表します。「device-width」はデバイス(スマホやパソコン)毎に用意している画面サイズを使用することを意味します。

 

モバイルファーストを意識して横幅を指定した書き方を試そう

それでは実際に viewport を指定した見え方を確認してみましょう。合わせてJavaScriptで「仮想的な画面のピクセル数」も出力することにします。はじめは viewport を指定しない場合です。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>sample</title>
</head>
<body>
  <h1>タイトルh1</h1>
  <h2>タイトルh2</h2>
  <h3>タイトルh3</h3>
  <p>
  かくかく、<br>
  しかじかでありました。
  </p>
  <script>
    console.log(window.innerWidth);
  </script>
</body>
</html>

スマホ表示した実行結果は以下のようになります。「仮想的な画面のピクセル数」は981とされ、文字が小さく表示されています。

次は viewport を指定した場合です。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <title>sample</title>
</head>
<body>
  <h1>タイトルh1</h1>
  <h2>タイトルh2</h2>
  <h3>タイトルh3</h3>
  <p>
  かくかく、<br>
  しかじかでありました。
  </p>
  <script>
    console.log(window.innerWidth);
  </script>
</body>
</html>

実行結果は以下のようになります。「仮想的な画面のピクセル数」が375に設定され、内容が大きく表示されるようになりました。パソコン表示と比較して見た目が同等であることを確認しましょう。

 

監修してくれたメンター

太田和樹(おおたかずき)

ITベンチャー企業のPM兼エンジニア

普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント。

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは初心者でも最短4週間でオリジナルWebサイトを公開できるオンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。