Pular para o conteúdo
Beta

Novo layout em fase de testes.

Versão beta

Nova versão do layout do Doug Design

Estamos validando uma nova versão visual do site, com navegação reformulada, leitura mais confortável e foco em desempenho, principalmente em celulares.

O que não muda
Conteúdo editorial, endereços (URLs) das publicações, a Política de Privacidade e as suas preferências de cookies.
O que pode mudar
Por ser uma versão beta, ajustes de visual, acessibilidade e desempenho serão aplicados de forma contínua, com base em medições e no retorno dos leitores.

Encontrou erro de exibição, texto difícil de ler ou lentidão? Conte pela página de contato, informando o endereço da página, o aparelho e o navegador usados.

Web Design•5 min de leitura

Como o CSS Subgrid Resolve o Alinhamento de Cards

Domine o CSS Subgrid e elimine hacks de alinhamento vertical em layouts complexos de grids e cards.

Maya Pixel

CSS Grid visualization
Neste artigo
  1. O Problema dos Grids Aninhados Tradicionais
  2. Como o CSS Subgrid Resolve Isso
  3. Exemplo Prático de Código CSS
  4. Benefícios do Subgrid

Quem desenvolve para a web sabe o martírio que é tentar alinhar verticalmente elementos dentro de cards dispostos lado a lado. Se o título de um card ocupa duas linhas e o do vizinho ocupa apenas uma, a estrutura visual quebra, deixando botões desalinhados ou textos desconexos.

Felizmente, o recurso CSS Subgrid resolve essa dor de cabeça de forma nativa e extremamente elegante.

O Problema dos Grids Aninhados Tradicionais

Até a chegada do subgrid, para criar um layout de cards, definíamos um grid pai. No entanto, cada card era um grid independente. Seus filhos (cabeçalho, corpo do texto e botão de ação) não sabiam o tamanho dos filhos do card ao lado.

A solução clássica envolvia limitar caracteres no backend, definir alturas fixas (o que quebra acessibilidade e zoom) ou usar JavaScript pesado no cliente para calcular a altura máxima.

Como o CSS Subgrid Resolve Isso

Com o subgrid, você pode instruir o grid filho a herdar a definição de linhas ou colunas do grid pai. Dessa forma, todos os cards na mesma linha do grid compartilham a mesma estrutura de alturas.

Exemplo Prático de Código CSS

Veja como estruturar o CSS de forma robusta e moderna:

/* O container pai que define o grid principal */
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  /* Cada card ocupará 3 linhas no grid pai */
  grid-auto-rows: max-content max-content max-content;
  gap: 24px;
}

/* O card que herda a definição de linhas do pai */
.card {
  display: grid;
  /* Define que o card se estende por 3 linhas do pai */
  grid-row: span 3;
  /* O segredo: as linhas internas usam a definição do pai */
  grid-template-rows: subgrid;
  background: #1e1e1e;
  border-radius: 8px;
  padding: 16px;
}

.card-title {
  font-size: 1.25rem;
  font-weight: bold;
}

.card-body {
  color: #a0a0a0;
}

.card-button {
  background: #3b82f6;
  color: #fff;
  border: none;
  padding: 10px;
  border-radius: 4px;
}
<!-- Estrutura HTML Simples -->
<div class="card-grid">
  <div class="card">
    <h3 class="card-title">Título Curto</h3>
    <p class="card-body">Texto curto de exemplo.</p>
    <button class="card-button">Ver Mais</button>
  </div>
  <div class="card">
    <h3 class="card-title">Título Longo Que Ocupa Duas Linhas Sem Quebrar Layout</h3>
    <p class="card-body">Texto mais longo e descritivo que em layouts antigos empurraria o botão para baixo.</p>
    <button class="card-button">Ver Mais</button>
  </div>
</div>

Benefícios do Subgrid

  1. Acessibilidade Preservada: Se o usuário aumentar o tamanho da fonte, as linhas continuam se ajustando uniformemente de forma automática.
  2. Zero JavaScript: Reduz a necessidade de scripts de redimensionamento e reflow de tela na renderização inicial.
  3. Layout Limpo: Código enxuto e fácil de manter.
CompartilheWhatsAppXFacebook
Publicidade

Newsletter

Acompanhe sem perder nada

A newsletter está em preparação. Enquanto a integração de inscrição não fica pronta, assine o feed RSS e receba cada nova publicação no seu leitor favorito.

Assinar o RSS

Comentários

Os comentários usam o Giscus e são carregados só quando você pedir.

Continue lendo

Mais em Web Design