Errores comunes en JavaScript y cómo solucionarlos (guía práctica con ejemplos)
Jairo
Si estás empezando con maquetación moderna en CSS, Grid es tu “superpoder” bidimensional: controla filas y columnas a la vez, define áreas como si fueran piezas de Lego y te ahorra media vida con minmax() y los auto-fit/fill. En mi experiencia, Grid y Flexbox solucionan problemas parecidos, pero mi elección depende del tipo de layout y del equipo.
CSS Grid es un sistema de rejilla bidimensional: organizas el lienzo en filas y columnas, y colocas los elementos en celdas o áreas. Flexbox, en cambio, es unidimensional (fila o columna). ¿Cuándo uso cada uno?
Tu comentario encaja perfecto aquí: aprender Grid “tiene complejidades similares a Flexbox”. Ambos hacen casi el mismo trabajo en ciertos escenarios; lo importante es saber estructurar bien la página para que sea navegable y estéticamente correcta según lo que quiere el cliente.
Piensa en Grid como un papel milimetrado donde decides cuántas columnas/filas tienes y dónde cae cada pieza.
<section class="grid-ejemplo">
<header>Header</header>
<nav>Sidebar</nav>
<main>Main</main>
<footer>Footer</footer>
</section>
<style>
.grid-ejemplo{
display: grid;
grid-template-columns: 200px 1fr; /* sidebar + contenido */
grid-template-rows: auto 1fr auto; /* header, contenido fluido, footer */
gap: 1rem;
}
header { background:#E6F4FF; }
nav { background:#FCE8E6; }
main { background:#E8F5E9; }
footer { background:#FFF3E0; }
</style>
Esto ya crea una cuadrícula con 2 columnas y 3 filas. Más abajo la mejoramos con áreas.
Ejemplo rápido de reparto con fr:
.grid-3-col {
display:grid;
grid-template-columns: 2fr 1fr 1fr; /* primera el doble */
gap: 12px;
}
Aquí está el “combo ganador” para responsive sin romperte la cabeza. En mi caso, practicar minmax() y auto-fit fue lo que marcó la diferencia.
.cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 16px;
}
Tu experiencia lo resume: con Grid “podemos hacer responsivo” y “alinear las cajas que queremos” como necesitamos.
Nombras zonas y colocas ítems por nombre. Conversar con diseño/negocio se vuelve trivial: “header”, “main”, “sidebar”, “footer”.
.layout {
display:grid;
grid-template-columns: 240px 1fr;
grid-template-rows: auto 1fr auto;
gap: 16px;
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
}
header { grid-area: header; }
nav { grid-area: sidebar; }
main { grid-area: main; }
footer { grid-area: footer; }
En mi día a día, con grid-template-areas “puedo hablar en plano con diseño”: todos vemos el mismo wireframe.
Grid te permite alinear contenido del contenedor y de cada ítem:
.galeria {
display:grid;
grid-template-columns: repeat(3, 1fr);
place-items: center; /* centra cada ítem en su celda */
gap: 8px;
}
.destacado {
place-self: end; /* esquina inferior derecha de su celda */
}
Esto conecta con tu punto: “podemos alinear… a la izquierda, derecha, centrar, abajo, esquina inferior izquierda… como queramos”.
.cards {
display:grid;
grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
gap: 1rem;
}
.masonry {
display:grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
grid-auto-rows: 8px;
gap: 8px;
}
.masonry > article {
grid-row: span var(--h, 30); /* cada tarjeta decide su altura en múltiplos de 8px */
}
.dashboard{
display:grid;
grid-template-columns: 1.2fr 2fr;
grid-template-rows: auto auto 1fr;
gap: 12px;
grid-template-areas:
"kpiA kpiB"
"kpiC chart"
"table chart";
}
.kpiA{grid-area:kpiA;} .kpiB{grid-area:kpiB;}
.kpiC{grid-area:kpiC;} .chart{grid-area:chart;}
.table{grid-area:table;}
Cuando el cliente pide “que se vea exactamente así”, Grid me ha dado el control milimétrico sin depender de media queries en muchos casos.
En mi experiencia, “mi elección depende del tipo de layout y del equipo”: si diseño piensa en columnas/áreas, Grid; si se habla de “orden de elementos en fila”, Flex.
CSS Grid te da estructura sólida, limpia y conversable con el equipo. En mi caso, “aprender Grid me costó lo mismo que Flexbox”, pero la combinación de grid-template-areas, minmax() y auto-fit me permitió organizar mejor la página para que sea navegable y que se vea como quiere el cliente. Próximos pasos: practica con tu layout real, abre el devtools para ver líneas/áreas, y prueba el patrón repeat(auto-fit, minmax(...)) hasta que te salga sin pensar.
No hay comentarios aún. ¡Sé el primero en comentar!
🍪 Utilizamos cookies para mejorar tu experiencia de navegación, analizar el tráfico del sitio y personalizar el contenido. Al continuar navegando, aceptas nuestro uso de cookies. Más información