7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【cordova】vh, vw のバグ (android, ios 両方あり)

Posted at

vh, vw は使わないほうがよさそうです

vh, vw は親要素に依存せずに、常に画面サイズを基準にしたサイズを返してくれます。

css
/* viewport = 320 なら、親要素に依存せずに width=160px */
width : 50vw;

特に、デザインを1画面に納めたい(縦にスライドさせたくない)時には、vhは大変便利そうです。しかし残念ながら ios, androidともにうまく動作しない場合があります。

##iosでvhが崩れる
インプット要素に文字を入力する際にはソフトウェアキーボードが表示されますが、これにより画面の高さが変化したとみなされてしまい、vhを使った要素のデザインが崩れてしまいます。

##android は width : xx% ですら崩れる機種あり
androidでは、device-pixel-ratioを考慮せずに、画面の解像度を基準に計算されてしまう場合があります。私が確認したものでは、width : xx% が倍のサイズで計算されてしまう機種がありました(昔の普段使いのメイン機種)。でもcrosswalkでビルドすれば大丈夫です。

解決策

%を使ったデザインは不安なので、jsでサイズを計算するのが確実です。
もしvh, vwが確実に動作する日が待ち遠しいです。
*コードは次回

7
4
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
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?