Curso Profissional de CSS Grid: Transforme Seu Design
Sobre a Aula

Exemplos práticos de layouts responsivos com CSS Grid

O CSS Grid Layout oferece um sistema poderoso para criar layouts estruturados e adaptáveis. Com o uso de media queries, é possível criar layouts responsivos que se ajustam automaticamente à largura da tela, orientação do dispositivo e resolução.

Exemplos

1. Layout de blog:

  • Tela grande: Duas colunas, com posts na coluna principal e sidebar na coluna secundária.
  • Tela pequena: Uma coluna, com posts empilhados.

HTML

<div class="container">
  <div class="main-content">
    <article class="post">
      <h1>Título do post 1</h1>
      <p>Conteúdo do post 1</p>
    </article>
    <article class="post">
      <h1>Título do post 2</h1>
      <p>Conteúdo do post 2</p>
    </article>
  </div>
  <div class="sidebar">
    <h2>Sidebar</h2>
    <ul>
      <li>Link 1</li>
      <li>Link 2</li>
      <li>Link 3</li>
    </ul>
  </div>
</div>

CSS

.container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  
  @media (max-width: 768px) {
    grid-template-columns: 1fr;
  }
}

.main-content {
  grid-area: 1 / 1 / 2 / 2;
  
  @media (max-width: 768px) {
    grid-area: 1 / 1;
  }
}

.sidebar {
  grid-area: 1 / 2 / 2 / 3;
  
  @media (max-width: 768px) {
    display: none;
  }
}

2. Galeria de imagens:

  • Tela grande: Três colunas, com imagens lado a lado.
  • Tela pequena: Uma coluna, com imagens empilhadas.

HTML

<div class="container">
  <img src="image1.jpg" alt="Imagem 1">
  <img src="image2.jpg" alt="Imagem 2">
  <img src="image3.jpg" alt="Imagem 3">
</div>

CSS

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  
  @media (max-width: 768px) {
    grid-template-columns: 1fr;
  }
}

3. Formulário de contato:

  • Tela grande: Duas colunas, com campos do formulário na primeira coluna e informações de contato na segunda coluna.
  • Tela pequena: Uma coluna, com campos do formulário empilhados.

HTML

<div class="container">
  <form action="#">
    <label for="nome">Nome:</label>
    <input type="text" id="nome" name="nome">
    <label for="email">Email:</label>
    <input type="email" id="email" name="email">
    <label for="mensagem">Mensagem:</label>
    <textarea id="mensagem" name="mensagem"></textarea>
    <button type="submit">Enviar</button>
  </form>
  <div class="contact-info">
    <h2>Contato</h2>
    <p>Telefone: (11) 1234-5678</p>
    <p>Email: contato@exemplo.com</p>
  </div>
</div>

CSS

.container {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  
  @media (max-width: 768px) {
    grid-template-columns: 1fr;
  }
}

.form {
  grid-area: 1 / 1 / 2 / 2;
  
  @media (max-width: 768px) {
    grid-area: 1 / 1;
  }
}

.contact-info {
  grid-area: 1 / 2 / 2 / 3;
  
  @media (max-width: 768px)
Entrar na conversa
Rolar para cima