CSS Grid: Fracciones (fr), repeat() y auto-fit
Aprende la unidad fraccional fr, la función repeat(), dimensionamiento dinámico con minmax() y cómo crear cuadrículas responsivas automáticas sin escribir media queries.
La Unidad Fraccional (fr)
La unidad fr (fracción) representa una porción proporcional del espacio disponible dentro del contenedor de la cuadrícula.
/* Columna lateral fija de 250px y contenido principal que absorbe todo el resto */
.layout {
display: grid;
grid-template-columns: 250px 1fr;
}
/* 3 columnas de proporciones 1 : 2 : 1 */
.columnas-asimetricas {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
}
La Función repeat()
En lugar de escribir grid-template-columns: 1fr 1fr 1fr 1fr, simplificamos la sintaxis con la función de repetición:
/* 4 columnas idénticas de 1 fracción */
grid-template-columns: repeat(4, 1fr);
La Fórmula Mágica Responsiva: repeat(auto-fit, minmax(...))
Esta es la técnica más avanzada del CSS moderno para crear galerías y catálogos de tarjetas 100% responsivos sin una sola Media Query:
.galeria-automatica {
display: grid;
/* Cada tarjeta medirá mínimo 240px; si hay espacio crecen hasta 1fr */
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 20px;
}
minmax(240px, 1fr): Las columnas nunca serán menores a 240px, pero pueden crecer indefinidamente para llenar la pantalla.auto-fit: Calcula cuántas columnas de al menos 240px caben en la ventana y expande las existentes para que no queden huecos vacíos.
⚡ Galería Totalmente Responsiva sin Media Queries
Redimensiona la ventana del navegador o cambia el ancho de la pantalla: el grid calcula automáticamente el número de columnas (de 1 a 4) según el espacio disponible:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>CSS Grid: Fracciones y Auto-Fit</title>
<style>
body {
font-family: Arial, Helvetica, sans-serif;
background-color: #f1f5f9;
margin: 0;
padding: 25px;
color: #0f172a;
}
/* Cuadrícula responsiva automática */
.catalogo-cursos {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 20px;
max-width: 1000px;
}
.tarjeta-curso {
background: white;
border: 1px solid #cbd5e1;
border-radius: 12px;
padding: 20px;
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.tarjeta-curso:hover {
transform: translateY(-4px);
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}
.icono-tecnologia {
width: 44px;
height: 44px;
border-radius: 8px;
background: #eff6ff;
color: #2563eb;
display: flex;
align-items: center;
justify-content: center;
font-weight: 800;
margin-bottom: 12px;
}
h4 {
margin: 0 0 6px 0;
color: #0f172a;
}
p {
margin: 0;
font-size: 0.85rem;
color: #64748b;
line-height: 1.5;
}
</style>
</head>
<body>
<h3>Catálogo Inteligente con repeat(auto-fit, minmax(220px, 1fr))</h3>
<p style="color: #64748b; margin-bottom: 20px;">
No requiere @media queries. Cada tarjeta se reacomoda de forma natural:
</p>
<div class="catalogo-cursos">
<div class="tarjeta-curso">
<div class="icono-tecnologia">HTML</div>
<h4>HTML5 Semántico</h4>
<p>Aprende la arquitectura estándar de documentos web modernos.</p>
</div>
<div class="tarjeta-curso">
<div class="icono-tecnologia" style="color: #0284c7; background: #e0f2fe;">CSS</div>
<h4>CSS3 & Grid</h4>
<p>Domina maquetaciones bidimensionales y efectos visuales fluidos.</p>
</div>
<div class="tarjeta-curso">
<div class="icono-tecnologia" style="color: #d97706; background: #fef3c7;">JS</div>
<h4>JavaScript ES6+</h4>
<p>Crea interfaces interactivas y asíncronas de alto rendimiento.</p>
</div>
<div class="tarjeta-curso">
<div class="icono-tecnologia" style="color: #7c3aed; background: #ede9fe;">PHP</div>
<h4>PHP 8.3 & MySQL</h4>
<p>Desarrollo backend robusto con tipado estricto y bases de datos.</p>
</div>
</div>
</body>
</html>
¿Tienes dudas con este tema?
Sócrates AI puede darte analogías y explicarte este código paso a paso.🚀 ¿Quieres dominar Manual Completo de CSS3, Flexbox y Grid y crear proyectos reales?
Aprende arquitectura limpia, desarrollo web moderno, buenas prácticas y despliegue en producción con nuestro Bootcamp Fullstack Developer con mentorías en vivo.
🏛️ Autoría y Propiedad Intelectual: Obra educativa original de David Amador para Kilopolis Academia (Solucionáticos), estructurada sobre las especificaciones y estándares abiertos del W3C, el estándar vivo de WHATWG y la documentación oficial de código abierto. © Todos los derechos reservados.