DEV Community

Cover image for O problema com vh no mobile
Nícolas Gabriel
Nícolas Gabriel

Posted on

5 2 2 2 2

O problema com vh no mobile

Olá, tudo bem? Sabe aquela coisa chata de quando você coloca um min-height: 100vh no seu body e no mobile ele fica com um scroll sem nenhum motivo aparente? Realmente é uma coisa bem irritante e que antigamente era complicada de ser resolvida sem uma certa "gambiarra". Mas vamos começar do começo!

Para caso não saiba, o "vh" do css é uma unidade relativa a 1% do viewport do usuário, porém essa viewport inclui todo o navegador, desconsiderando por exemplo elementos que possam estar cobrindo a tela (como é o caso de celulares)

Por isso funciona no desktop, mas em mobile deixa um scroll!

Já a medida "svh" é o equivalente a "small viewport height", ou seja 1% do menor viewport considerando justamente os elementos que possam cobrir a tela como a barra de endereços do mobile.

Ou seja, perfeito pra celulares pois é muito mais preciso para o que o usuário vê!

SVH

Já o "lvh" (large viewport height) é o exato oposto, ele pega o maior viewport possível, desconsiderando a barra de endereços ou uma UI que possa estar cobrindo a tela.

Para desktop ele funciona muito bem como pode imaginar, mas pra mobile depende do seu caso de uso. 🤔

LVH

Afinal, um é bom pra desktop e outro bom pra celular, eu teria que usar uma media query pra adaptar então??

Não :D

Felizmente também existe o "dvh" (dynamic viewport height) que se ajusta de acordo com o dispositivo, agindo tanto como svh ou dvh de acordo com o necessário.

DVH

Entretanto alegria de pobre dura pouco, e eles ainda não estão disponíveis em todos os navegadores :(

O firefox e IE por exemplo ainda não possuem suporte...

Por isso, eu recomendo usar porém junto de um fallback! Se liga na dica:

body {
  /*
   primeiro você usa o fallback: vh
  */
  min-height: 100vh;

  /*
    e em seguida, você usa a versão nova!
    pois caso ela não funcione, será ignorada e
    o vh informado anteriormente será usado no lugar
  */
  min-height: 100dvh;
}
Enter fullscreen mode Exit fullscreen mode

São propriedades super úteis e hoje em dia uma mão na roda pra evitar bugs de UI desnecessários :)

E é isso, espero que tu tenha aprendido algo novo hoje!
Obrigado por ler, boa sorte no css e até mais! :)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay