Responsividade e Media Queries. 🌴 TRILHA CSS 🎨 Etapa 09

  Seja muito bem-vindo à Academy Code Christ!


🌍 Academy Code Christ está disponível em vários idiomas.
Fique à vontade para usar o tradutor na Barra lateral (Sidebar) 
e aprender no seu idioma.

📚 Continue sua jornada de aprendizado



A Academy Code Christ oferece trilhas de aprendizado em diferentes tecnologias. Explore os cursos, acompanhe as aulas e avance em sua jornada de conhecimento.  


📋 Menus correspondentes:



💻 Pratique o que você aprende

Para facilitar seu aprendizado, utilize o Code Editor da Mr Digitals, um editor online que permite escrever códigos em HTML, CSS e JavaScript e visualizar os resultados diretamente no navegador.


🎨 Etapa 09 


O que você vai aprender nesta aula?


 Nessa aula, você vai aprender a entender o conceito de design responsivo; Identificar o

que são breakpoints; Dominar o uso de media queries no CSS; Criar um layout que muda

automaticamente com o tamanho da tela; Aprender boas práticas e estratégias para um

design fluído e sustentável.


🧠 O Que é Responsividade?

Responsividade é o ajuste automático da interface de um site para diferentes tamanhos de

tela, sem perder legibilidade ou usabilidade.

🎯 Em resumo:

O mesmo site funciona bem e parece bonito em celulares, tablets e computadores.

💡 O problema que ela resolve:

Antes da responsividade, precisávamos criar duas versões do site:

●     site.com — para desktop

●     m.site.com — para mobile

Hoje, o CSS faz essa adaptação automaticamente — um código, múltiplos dispositivos

🧩 O Que São Breakpoints

Breakpoints são pontos de corte de largura da tela em que o layout muda de aparência.

Exemplo de breakpoints comuns: Dispositivo        Largura Aproximada

Celulares  →      até 600px

Tablets (modo retrato) →  600–900px

Tablets (modo paisagem) →   900–1200px

Telas grandes (desktops)   →    acima de 1200px

Esses valores servem de referência — cada projeto pode ajustar conforme necessidade.

🧾 A Sintaxe de uma Media Query

A estrutura básica é:

@media (condição) {

  /* CSS aqui dentro será aplicado somente se a condição for verdadeira */

}                                  

 

Exemplo:

@media (max-width: 768px) {

  body {

background: lightblue;

  }

}

 

💬 Isso muda o fundo somente quando a tela tiver até 768px de largura.

🧭 Tipos de Condições Comuns: Condição     Significado

max-width   →   Aplica estilos abaixo de uma largura específica

min-width →    Aplica estilos acima de uma largura específica

orientation    →       Detecta orientação do dispositivo (portrait ou landscape)

hover    →    Detecta se o dispositivo suporta hover (ex.: mouse vs. touch)

Example combinando condições:

@media (min-width: 600px) and (max-width: 900px) {

  .menu {

background: orange;

  }

}

 

🎯 O código só será executado entre 600 e 900px de largura.

🧠  Estratégias: Mobile-First vs Desktop-First

Existem duas formas principais de pensar responsividade:

🔹 Mobile-First (Recomendado)

Comece o design para telas pequenas e vá adicionando estilos para telas maiores.

/* Base: celular */

.container {

  flex-direction: column;

}

 

/* Adaptações maiores */

@media (min-width: 768px) {

  .container {

flex-direction: row;

  }

}

 

💡 Mais eficiente — é a filosofia usada pelas grandes empresas de tecnologia.

🔹 Desktop-First

Cria o layout completo e depois remove/ajusta detalhes para telas menores.

/* Base: desktop */                

.container {

  flex-direction: row;

}

 

/* Ajustes mobile */

@media (max-width: 768px) {

  .container {

flex-direction: column;

  }

}

 

Ambos funcionam — escolha conforme o público principal do seu projeto.

⚙️ Ferramentas Responsivas do Navegador

Todos os navegadores modernos têm simuladores:

🧭 Atalho:

●     Chrome / Edge: Ctrl + Shift + M (ou Cmd + Shift + M no Mac)

●     Firefox: Ferramenta de desenvolvedor → “Modo Responsivo”

Essas ferramentas permitem testar layouts em tempo real em vários tamanhos de tela.


📘 Para um melhor Aprendizado          🎯 Pratique com exercícios, desafios e projetos



🧱 Projeto Prático — Layout Fluid e Responsivo

Vamos criar um pequeno site que se adapta automaticamente de desktop a mobile.

📄 index.html

<!DOCTYPE html>

<html lang="pt-BR">

<head>

  <meta charset="UTF-8">

  <title>Layout Responsivo</title>

  <link href="https://fonts.googleapis.com/css2?family=Poppins:

wght@400;600&display=swap" rel="stylesheet">

  <link rel="stylesheet" href="style.css">

</head>

<body>

  <header>Meu Site Responsivo</header>

  <nav>

<a href="#">Início</a>

<a href="#">Sobre</a>

<a href="#">Serviços</a>

<a href="#">Contato</a>

  </nav>

  <main>

    <section>Conteúdo principal</section>

<aside>Barra lateral</aside>

  </main>

  <footer>© 2024 - Exemplo Responsivo</footer>

</body>

</html>

 

📄 style.css

* {

  margin: 0;

  padding: 0;

  box-sizing: border-box;

}

 

body {

  font-family: 'Poppins', sans-serif;

  background: #f0f2f5;

}

 

header, footer {

  background: #0077ff;

  color: white;

  text-align: center;

  padding: 20px;

  font-weight: 600;

}

 

nav {

  display: flex;

  justify-content: center;

  background: #e8ecf2;

  gap: 20px;

  padding: 10px;

  flex-wrap: wrap;

}

 

nav a {

  color: #0077ff;

  text-decoration: none;

  font-weight: 500;

}

 

main {

  display: grid;

  grid-template-columns: 3fr 1fr;

  gap: 20px;

  padding: 20px;

}

 

section, aside {

  background: white;

  padding: 20px;

  border-radius: 8px;

}

 

/*----------- RESPONSIVIDADE -----------*/

 

/* Tablets */

@media (max-width: 900px) {

  main {

    grid-template-columns: 2fr 1fr;

  }

}

 

/* Celulares */

@media (max-width: 600px) {

  nav {

flex-direction: column;

align-items: center;

  }

 

  main {

    grid-template-columns: 1fr;

  }

 

  aside {

order: -1;

  }

}

 

💥 Resultado:

●     Em desktop: menu na horizontal, conteúdo e sidebar lado a lado;

●     Em tablet: proporções ajustadas;

●     Em celular: menu vertical, sidebar acima do conteúdo principal;

●     Tudo suave e sem JavaScript!

🧠 Boas Práticas com Media Queries


  ✅ Use poucos breakpoints bem escolhidos, não crie dezenas;
 

 ✅ Evite definir valores fixos em px — prefira %, em, rem e fr;
 

 ✅ Pense na fluidez, não só no tamanho;

   ✅ Teste o site em dispositivos reais sempre que possível;
 

  ✅ Utilize max-width: 100% em imagens e vídeos para evitar estouros de layout;
 

  ✅ Combine Grid/Flexbox + media queries para flexibilidade total.

🧩 Dica Avançada — CSS Clamp e Fluid Typography

Você pode tornar fontes e espaçamentos adaptativos automaticamente, sem media queries,

usando clamp():

h1 {

  font-size: clamp(1.5rem, 4vw, 3rem);

}

 

💬 Isso significa:

O tamanho mínimo é 1.5rem, o ideal é 4% da largura da tela, e o máximo é 3rem.

✨ Resultado: tipografia 100% fluida e elegante.




📚 Continue aprendendo CSS:


🎨 Etapa 1 👉  Introdução ao CSS

🎨 Etapa 3 👉 Box Model, Display e Posicionamento

🎨 Etapa 5 👉  Bordas, Sombreamentos e Efeitos Visuais

🎨 Etapa 6 👉 Pseudo-Classes e Pseudo-Elementos

🎨 Etapa 7 👉 Flexbox: Layouts Flexíveis e Responsivos

🎨 Etapa 8 👉 CSS Grid: Layouts de Grade Avançados

🎨 Etapa 9 👉 Você está nessa Etapa

🎨 Etapa 10 👉 Transições e Animações no CSS

🎨 Etapa 11 👉 Gradientes, Sombras e Estilo Translúcido

🎨 Etapa 12 👉 Variáveis e Funções (CSS Custom Properties)

🎨 Etapa 13 👉 Layout Responsivo Completo com Grid, Flexbox e Media Queries

🎨 Etapa 14 👉 Boas Práticas, e Estrutura Profissional de Projeto CSS

🎨 Etapa 15 👉 Performance, Otimização e Boas Práticas Avançadas de CSS



Este conteúdo faz parte do Academy Code Christ. 

Um projeto criado para ajudar jovens e iniciantes a aprender programação do zero, de forma simples e gratuita.

Nossa missão é compartilhar conhecimento e incentivar mais pessoas a descobrir que também podem aprender tecnologia, criar projetos e desenvolver novas habilidades.
Todo o conteúdo é disponibilizado gratuitamente, de forma clara, prática e 
sem enrolação. 

Você pode apoiar o projeto se quiser 
com um café. 



Post a Comment

Postagem Anterior Próxima Postagem