6
2

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 3 years have passed since last update.

スマホのメニューバーに左右されたくない人に送る記事

Posted at

はじめに

スマホでブラウザを開くとメニューバーがある時にデザインが狂ったりしませんか?

そんな時にこちら

Safari15.4で新たに追加されたCSSの単位を利用すればすぐにメニューバーに狂わされることなく実装できます。

100svh, 100svw :メニューバーが表示されていない時の画面が100になる
100lvh, 100lvw :メニューバーが表示された時の画面が100になる
100dvh, 100dvw :現在表示されている画面が100になる(メニューバーがなければ100svhになり、あれば100lvhになる)
body {
  height: 100vh;
  height: 100dvh;
  width: 100vw;
  width: 100dvw;
}

注: 2022/03/26現在Safari15.4しか対応していないのでheight:100vhも記述する必要がある

従来はメニューバーありの時のために

.my-element {
  height: 100vh;
  height: calc(var(--vh, 1vh) * 100);
}
let vh = window.innerHeight * 0.01;

document.documentElement.style.setProperty('--vh', `${vh}px`);

と処理を追加したりしていましたが、単位指定すればすぐ実装できるのでかなり便利になりましたね。
現在はSafariでしか採用されていないため他のブラウザでも採用されるといいですね。

参考資料

6
2
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
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?