1
0

More than 1 year has passed since last update.

微妙な画面サイズの違いに対応するためのレスポンシブの考え方

Last updated at Posted at 2022-05-04

今回の経緯

このWEB発展した社会で、現在さまざまな端末があります。WEB開発をしていると各端末の微妙な画面サイズの違いで表示が崩れることもあります。

特にクライアントとやりとりしていると、こっちでは問題ないのに客先ではおかしくなってるなんてこともザラです。けっこうこのやりとりってお客さんの状況なども聞かないと気づかないことなのでコミュニケーションコストがかかります。あと『この人ショボいな』なんて思われるかもしれません。

現在私が使用している方法で、万能とはいかないけど画面サイズの微妙な違いなら対応できるようなサイズの計算方法をご紹介したいと思います。

実例(PC)

▼大きめのノートPCサイズ(1344px)
スクリーンショット 2022-05-04 10.47.17.png

▼デスクトップで見ると(1920px)
スクリーンショット 2022-05-04 10.47.49.png

▼小さめのPCで見ると(1280px)
スクリーンショット 2022-05-04 10.48.14.png

PCの場合のイメージ的にはこんな感じです。この場合開発者は1344pxの少し大きめのノートPCで開発しているのでそのサイズではカンプ通りに作成したとします。ただ画面サイズが少し変わるだけで思惑とはだいぶかけ離れますね。

ディレクションをやることもあるのですが結構コーダーから上がってきたものでもよく見かけます。で、だいたいこれを指摘すると『私の方では問題ないですよ?』みたいな回答が返ってきます。そういうことではないんですよね・・・

実例(SP)

▼標準サイズのスマホ(375px)
(iPhone 6_7_8).png

▼小さめのスマホ(320px)
(iPhone 5_SE).png

これもよくあります。数十pxの違いで改行位置が変わってしまいます。流石にこれは気になりますよね?

VWをベースに変えるとある程度は解消できる

前置きが長くなりましたが、サイズをpxで固定しまうのではなくvwで可変にすれば大体は解決できます。ただすこし慣れが必要です。

基本の式

100vw / コンテナサイズ * 基準値

100vwは画面全体のサイズです。

コンテナサイズはカンプで指示があった幅です。例えば1400pxでカンプが作られていて1200pxの幅で要素が収まっていたら、基本的には1400と1200がこの式に当てはまります。

基準値1remの値をなんpxにしたいかです。基本は10pxだと思います。

基本の式の例

▼カンプ
2022-05-04 11.54.55.png
カンプサイズ=1400px
コンテナサイズ=1200px

▼ファーストビューは1400pxフル
画面サイズが1400pxの時に1remが10pxにしたいです。

font-size: calc(100vw / 1400 * 10);

▼各セクションは1200pxがコンテナサイズ
画面サイズが1200pxの時に1remが10pxにしたいです。

font-size: calc(100vw / 1200 * 10);

こうすることによって、カンプで指示されたサイズを基準に比率を保ったまま可変になることがわかりますでしょうか?

解説

100vwは画面幅を指します。では画面幅が1400pxだとして先ほどの式に当てはめるとどうでしょうか?

100vw / 1400 * 10

1400px / 1400 * 10

となり答えは10pxとなります。では画面が大きくなったらどうでしょうか?

1920px / 1400 * 10
答えは13.7142857pxとなります。逆に小さいなると、

1280px / 1400 * 10
答えは9.14285714pxとなります。

まとめ

まとめるとサイズをpxで固定にするのではなくvwを用いることである程度の画面サイズごとの表示の差異をなくせますよということでした。この方法の使い方自体は気になると思いますが、また別の機会にしたいと思います。気になる方はDM、コメントください。

補足

基準となる画面サイズは以下などを参考にしてみるといいです。
https://gs.statcounter.com/

▼PCシェア率
スクリーンショット 2022-05-04 10.35.15.png

▼SPシェア率(年々大きくなってます・・・)
スクリーンショット 2022-05-04 12.30.24.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0