Este proyecto demuestra cómo combinar CSS Grid y Flexbox para crear layouts modernos y responsivos. Forma parte de la serie de recursos educativos de FemCoders Club.
⚠️ Este proyecto es un recurso educativo. Los testimonios, ejemplos y precios mostrados son ficticios y tienen fines didácticos únicamente.
Visita la demo en vivo para explorar el proyecto.
Este proyecto demuestra:
- Combinación estratégica de CSS Grid y Flexbox
- Diseño responsivo sin frameworks
- Layout de landing page moderna con múltiples secciones
- Navegación responsiva con toggle para móviles
- Sistema de tarjetas flexible y adaptable
- Modo "educativo" que muestra qué tecnología se usa en cada parte
- Comentarios detallados explicando las decisiones de diseño
- HTML5
- CSS3 (Grid y Flexbox)
- JavaScript vanilla
- Sin dependencias ni frameworks externos
css-grid-flexbox-layouts/
├── index.html # Landing page principal
├── css/
│ ├── styles.css # Estilos generales
│ ├── grid.css # Componentes usando Grid
│ ├── flexbox.css # Componentes usando Flexbox
│ └── combined.css # Componentes que usan ambos
├── js/
│ └── main.js # JavaScript básico para interactividad
├── images/ # Imágenes del proyecto
└── examples/ # Ejemplos adicionales
├── dashboard/ # Ejemplo de dashboard
├── portfolio/ # Ejemplo de portafolio
└── product-page/ # Ejemplo de página de producto
-
Clona este repositorio:
git clone https://github.com/femcodersclub/css-grid-flexbox-layouts.git
-
Abre
index.htmlen tu navegador para ver la landing page principal. -
Explora el código fuente para ver cómo se implementan los diferentes layouts:
grid.csspara componentes basados en Gridflexbox.csspara componentes basados en Flexboxcombined.csspara ejemplos de cómo se combinan ambos
-
Activa el modo educativo:
- Visita la página con el parámetro
?debug=true(ej:index.html?debug=true) - Haz clic en el botón "Mostrar Indicadores CSS" que aparecerá en la esquina inferior derecha
- Los elementos usarán códigos de color para mostrar qué tecnología se está usando
- Visita la página con el parámetro
La navegación del sitio usa Flexbox para alineación horizontal, y Grid para la estructura general en versión móvil.
.header-container {
display: flex;
justify-content: space-between;
align-items: center;
height: 80px;
}
/* Navegación responsiva */
@media (max-width: 768px) {
.main-nav.active {
display: grid;
grid-template-rows: repeat(4, auto);
}
}Usa Grid para dividir contenido e imagen, y Flexbox para alinear botones.
.hero-container {
display: grid;
grid-template-columns: 1fr 1fr;
gap: var(--space-xl);
align-items: center;
}
.hero-buttons {
display: flex;
gap: var(--space-md);
}Utiliza Grid para distribución de tarjetas y Flexbox para alineación interna.
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: var(--space-lg);
}
.feature-card {
display: flex;
flex-direction: column;
align-items: center;
}- Para layouts bidimensionales (filas y columnas)
- Para estructuras de página completa
- Para posicionamiento preciso de elementos
- Para alineación en ambos ejes simultáneamente
- Para distribuciones unidimensionales (filas O columnas)
- Para alineación flexible dentro de un contenedor
- Para espaciado dinámico entre elementos
- Para adaptación al contenido
- Grid para estructura, Flexbox para componentes
- Grid para posicionamiento asimétrico, Flexbox para alineación interna
- Grid con áreas nombradas y Flexbox para componentes
- Grid para responsividad automática, Flexbox para componentes
- Intercambio de layout basado en media queries
