Aprenda Web Design responsivo em 5 minutos

Olá Habr! Apresento a você a tradução do artigo "Aprenda web design responsivo em 5 minutos" por Per.

Neste artigo, ensinarei muitos truques de design responsivo em 5 minutos. Obviamente, isso não é suficiente para um estudo adequado, mas aqui você encontrará uma visão geral dos seguintes métodos mais importantes:

  • Unidades CSS relativas
  • Consultas de mídia
  • Flexbox
  • Tipografia responsiva

Unidades CSS relativas


Web design responsivo é baseado em unidades CSS relativas. Essas são unidades que obtêm seus valores de alguns valores externos. Isso é conveniente porque permite, por exemplo, dimensionar proporcionalmente a largura da imagem em relação à largura da janela do navegador.

As unidades relativas mais comuns:

  • %
  • em
  • rem
  • vw
  • vh

Nesta seção, começamos com a porcentagem% como uma unidade de medida e, em seguida, na última seção, consideramos a unidade rem.

Digamos que temos um site muito simples como o abaixo:

imagem

Seu HTML é o seguinte:

<body> <h1>Welcome to my website</h1> <image src="path/to/img.png" class="myImg"> </body> 

Como você pode ver no GIF abaixo, nossa imagem padrão terá uma largura fixa:

imagem

A imagem não é particularmente responsiva, então vamos alterar a largura para 70%. Simplesmente escrevemos o seguinte:

 .myImg { width: 70%; } 

Isso define a largura da imagem para 70% da largura do elemento original gravado na tag. Como a tag cobre toda a largura da tela, a imagem sempre será 70% da própria janela do navegador.

Aqui está o resultado:

imagem

É tão fácil criar uma imagem responsiva.

Usando consultas de mídia para melhorar a versão móvel do site


Temos um problema com nosso layout responsivo - ele parece estranho em telas muito pequenas. A largura igual a 70% deve diminuir quando visualizada em um telefone móvel. Basta dar uma olhada em si mesmo:

imagem

Para melhorar a imagem neste caso, é uma tarefa apenas para consultas de mídia. Eles permitem aplicar vários estilos, por exemplo, dependendo da largura da tela. Podemos prescrever que, se a largura da tela for menor que 768px, precisamos usar um estilo diferente.

Veja como criamos uma consulta de mídia em CSS:

 @media (max-width: 768px) { .myImage { width: 100% } } 

Este bloco CSS será aplicado apenas se a largura da tela for menor que 768 pixels.

Aqui está o resultado:

imagem

Como você pode ver, a página possui um ponto de interrupção em que a imagem se amplia: quando a janela do navegador tem 768px de largura, a largura da imagem muda de 70% para 100%.

Menu de Navegação Usando o Flexbox


Em seguida, vem o Flexbox. Você simplesmente não consegue entender a capacidade de resposta sem antes se familiarizar com o Flexbox. Quando o Flexbox foi introduzido há vários anos, ele mudou seu design responsivo, pois esse módulo facilita muito o posicionamento de elementos ao longo do eixo.

Para usar o Flexbox, tornaremos nosso site um pouco mais complicado adicionando um menu de navegação acima do cabeçalho. Aqui está o HTML para isso:

 <nav> <a href="#">Home</a> <a href="#">About me</a> <a href="#">Contact</a> </nav> 

Por padrão, será algo parecido com isto:

imagem

Nossos itens de menu são deslocados para a esquerda, mas não é disso que precisamos. Queremos que eles estejam alinhados uniformemente na largura da página.

Para fazer isso, simplesmente transformamos o contêiner em flexbox e, em seguida, aplicamos a propriedade mágica justificar conteúdo.

 nav { display: flex; justify-content: space-around; } 

Vamos descobrir. Visor: flex se transforma em uma caixa flexível. Justify-content: space-around informa ao navegador que os elementos dentro do contêiner flexível devem ter espaço ao seu redor. Portanto, o navegador distribui uniformemente todo o espaço restante em torno dos três elementos.

Aqui está como fica. E, como você pode ver, o site é bem dimensionado:

imagem

Tipografia responsiva: rem


O último passo é tornar nossa tipografia responsiva. Veja bem, eu quero que o menu e o título de navegação sejam um pouco menores quando a largura da tela for menor que 768px (nosso ponto de referência, lembra?).

Uma maneira de fazer isso é reduzir o tamanho da fonte na consulta de mídia, por exemplo, da seguinte maneira:

 @media (max-width: 768px) { nav { font-size: 14px; } h1 { font-size: 28px; } } 

Acabou longe de ser perfeito. Um aplicativo pode ter vários pontos de controle e muitos elementos (h2, h3, parágrafos e assim por diante). Como resultado, teremos que rastrear todos os elementos em todos os diferentes pontos de interrupção. É fácil adivinhar que isso criará alguma confusão.

No entanto, provavelmente, eles se relacionarão mais ou menos o mesmo em diferentes pontos de controle. Por exemplo, h1 sempre será mais que um parágrafo.

E se houvesse uma maneira de configurar um elemento e, em seguida, aumentar o tamanho dos tamanhos de fonte em relação a esse elemento?

Digite rem!

Rem basicamente significa o valor do tamanho da fonte que você definiu para o seu elemento. Tipo do seguinte:

 html { font-size: 14px; }</source ,     rem  14px.  ,             rem. : <source lang="xml">h1 { font-size: 2rem; } nav { font-size: 1rem; } 

E então apenas alteramos o valor do tamanho da fonte da tag dentro da nossa solicitação de mídia. Isso fornecerá redimensionamento de fonte para os elementos h1 e nav.

Veja como alteramos o valor rem em uma consulta de mídia:

 @media (max-width: 768px) { html { font-size: 14px } } 

E assim, temos um ponto de interrupção para todos os nossos tamanhos de fonte. Observe como o tamanho da fonte muda quando a página cruza a marca de 768 pixels:

imagem

Você aprendeu como ajustar os tamanhos de fontes, imagens e o menu de navegação para que eles respondam à largura da página em apenas 5 minutos. Isso é ótimo, porque você já deu os primeiros passos para dominar as habilidades muito valiosas da criação de sites responsivos.

Boa codificação!

Source: https://habr.com/ru/post/pt476974/


All Articles