Como Usar Media Queries para Criar Layouts Responsivos
No universo do desenvolvimento web, a adaptabilidade é a chave para oferecer uma experiência de usuário excepcional em uma variedade de dispositivos. As Media Queries em CSS são uma ferramenta essencial para alcançar layouts responsivos, ajustando o estilo da página conforme as características do dispositivo. Neste artigo, vamos aprender como usar Media Queries para criar layouts responsivos, com exemplos práticos e insights sobre como criar designs flexíveis e visualmente agradáveis.
![Representação de Código Media Queries em CSS.](https://frontendbrasil.com.br/wp-content/uploads/2023/11/Representacao-de-Codigo-CSS-1024x682.jpg)
Acesse também: Como Tipar da Forma Correta com TypeScript
O que são Media Queries?
Media Queries são um recurso do CSS3
que permitem aplicar estilos diferentes com base nas características do dispositivo que está renderizando a página. Essas características incluem largura de tela, altura de tela, orientação (retrato ou paisagem), resolução e até mesmo características específicas, como se o dispositivo tem suporte para tela sensível ao toque.
Estrutura Básica de uma Media Query:
A estrutura básica de uma Media Query envolve a utilização da diretiva @media
seguida de uma ou mais condições. Vamos ver um exemplo simples:
/* Estilos padrão que se aplicam a todos os dispositivos */
body {
font-size: 16px;
}
/* Estilos específicos para dispositivos com largura de tela menor que 600 pixels */
@media (max-width: 600px) {
body {
font-size: 14px;
}
}
Neste exemplo, os estilos dentro da Media Query serão aplicados apenas quando a largura de tela for menor que 600 pixels; Quando for maior, a fonte terá um tamanho de 16px.
Utilizando Media Queries para Layouts Responsivos:
1. Reorganizando Layouts para Dispositivos Pequenos:
/* Estilos padrão para telas grandes */
.container {
display: flex;
}
/* Estilos para telas menores, mudando para layout de coluna */
@media (max-width: 768px) {
.container {
flex-direction: column;
}
}
Neste exemplo, quando o dispositivo tiver menos que 768px de largura, o container, que antes era na horizontal, passará a ficar na vertical.
2. Adaptando Imagens para Diferentes Resoluções:
/* Estilos padrão para imagens */
img {
max-width: 100%;
height: auto;
}
/* Estilos para dispositivos de alta resolução (Retina) */
@media (min-resolution: 2dppx) {
img {
width: 50%;
}
}
Quando a resolução do dispositivo é de pelo menos 2 pixels por ponto a imagem terá 50% da largura.
3. Ocultando Elementos para Dispositivos Pequenos:
/* Estilos padrão para elemento */
.sidebar {
width: 25%;
}
/* Ocultar a barra lateral em telas pequenas */
@media (max-width: 600px) {
.sidebar {
display: none;
}
}
Aqui podemos imaginar uma barra lateral que você só quer que apareça em dispositivos maiores que 600px de largura (algo maior que tablets).
Exemplo Prático: Construindo um Header Responsivo
Vamos criar um exemplo prático para construir um header responsivo que se ajusta conforme a largura da tela diminui.
Crie um arquivo index.html
e cole o código abaixo.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Header Responsivo</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<header>
<h1>Meu Site</h1>
<nav>
<ul>
<li><a href="#">Página Inicial</a></li>
<li><a href="#">Sobre</a></li>
<li><a href="#">Contato</a></li>
</ul>
</nav>
</header>
</body>
</html>
Crie um arquivo index.css
e cole o código abaixo.
body {
font-family: 'Arial', sans-serif;
margin: 0;
padding: 0;
}
header {
background-color: #333;
color: #fff;
padding: 20px;
text-align: center;
}
nav ul {
list-style: none;
padding: 0;
margin: 0;
display: flex;
justify-content: center;
}
nav li {
margin: 0 15px;
}
/* Media Query para dispositivos menores, ajustando o layout do header */
@media (max-width: 600px) {
header {
padding: 10px;
}
nav {
flex-direction: column;
}
nav li {
margin: 5px 0;
}
}
Neste exemplo, a Media Query é usada para ajustar o layout do header quando a largura da tela é menor que 600 pixels. O conteúdo do header é centralizado e os itens de navegação são organizados verticalmente.
![](https://frontendbrasil.com.br/wp-content/uploads/2023/11/tela-de-menu-responsiva.png)
Com isso, agora temos uma tela de menu responsiva.
Sempre Utilize o Media Query em Seus Projetos
As Media Queries em CSS são uma ferramenta essencial para criar layouts responsivos, adaptando o estilo das páginas da web conforme as características do dispositivo. Ao explorar as diversas condições e propriedades disponíveis nas Media Queries, os desenvolvedores podem criar designs que oferecem uma experiência de usuário consistente em uma ampla gama de dispositivos. Ao integrar Media Queries em seu conjunto de habilidades, você estará bem equipado para enfrentar os desafios do design responsivo e criar interfaces web que brilham em qualquer tela.