Layout con footer y sidebar fijos
Cree layouts con footers y sidebars fijos que ocupen toda la altura mediante Grid o Flexbox.
Layout con footer y sidebar fijos es una lección gratuita de CSS Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de CSS Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de CSS Academy incluye 4 lecciones en total.
Problema del pie de página sticky
Un pie de página sticky permanece en la parte inferior de la ventana gráfica cuando el contenido es corto, pero se desplaza hacia abajo cuando el contenido es largo. El desafío histórico consistía en fijar el pie de página sin conocer la altura del contenido ni usar JavaScript.
Pie de página sticky con Flexbox
La solución moderna más sencilla es: body { display: flex; flex-direction: column; min-height: 100vh; } y main { flex: 1; }. El contenido principal crece para ocupar el espacio disponible y empuja el pie de página hasta la parte inferior, independientemente de la longitud del contenido.
Pie de página sticky con Grid
Una alternativa con CSS Grid es: body { display: grid; grid-template-rows: auto 1fr auto; min-height: 100vh; }. El encabezado obtiene una altura automática, main recibe 1fr (ocupa el espacio restante) y el pie de página obtiene una altura automática. Es una solución clara y explícita: la plantilla de filas muestra claramente la intención del diseño.
Pie de página con position: sticky
position: sticky; bottom: 0 en el pie de página lo fija al borde inferior de la ventana gráfica mientras se desplaza, pero solo cuando su contexto de desplazamiento lo permite. Funciona para pies de página dentro de un contenedor con desplazamiento, pero es menos apropiado para pies de página sticky a nivel de página, donde Flexbox o Grid ofrecen una solución más limpia.
Diseño de barra lateral con Flexbox
Para un diseño con barra lateral y contenido principal: wrapper { display: flex; }, sidebar { width: 280px; flex-shrink: 0; }, main { flex: 1; min-width: 0; }. El min-width: 0 en main evita que los elementos flex desborden su contenedor cuando contienen contenido ancho.
Diseño de barra lateral con Grid
Barra lateral con Grid: wrapper { display: grid; grid-template-columns: 280px 1fr; gap: var(--spacing-4); }. La columna de la barra lateral tiene un ancho fijo y la columna de contenido ocupa el espacio restante. Añada una fila para el encabezado con grid-template-rows: auto 1fr y haga que la barra lateral abarque ambas filas.
Barra lateral adaptable
En dispositivos móviles, coloque la barra lateral encima o debajo del contenido principal: use una media query para cambiar de un diseño de columnas de Grid a una pila de una sola columna. Otra opción es usar grid-template-columns: min(280px, 30%) 1fr para crear una barra lateral fluida que se reduzca en ventanas gráficas más pequeñas.
Barra lateral sticky
Haga que una barra lateral se desplace de forma independiente: sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; }. La barra lateral permanece visible mientras se desplaza el contenido principal, lo que resulta ideal para barras laterales de navegación o de índice en páginas con contenido extenso.
Barra lateral contraíble
Una barra lateral contraíble alterna entre un estado de ancho completo y otro de solo iconos. Use una propiedad personalizada de CSS para el ancho de la barra lateral: --sidebar-width: 280px en el contenedor, y cámbielo a 64px mediante una clase. Las transiciones animan suavemente el cambio de ancho.
Desbordamiento en barras laterales fijas
Una barra lateral con posición fija (position: fixed; left: 0; top: 0; height: 100vh) requiere compensar el contenido principal según el ancho de la barra lateral: main { margin-left: 280px }. En dispositivos móviles, la barra lateral se desliza sobre el contenido e incluye un botón de cierre y una superposición de fondo.
Accesibilidad de las barras laterales
Marque las barras laterales de navegación con <nav> y aria-label="Sidebar navigation". Las barras laterales contraíbles necesitan un botón de alternancia accesible con aria-expanded y aria-controls. Los enlaces para saltar ayudan a los usuarios de teclado a omitir las barras laterales y llegar al contenido principal.
Comprobación de conocimientos
¿Por qué es necesario establecer min-width: 0 en el elemento flex del contenido principal en un diseño con barra lateral?
Resumen
Flexbox con flex: 1 en main o una cuadrícula de tres filas permiten crear pies de página sticky con un CSS mínimo. Los diseños con barras laterales utilizan definiciones de columnas fijas o fluidas y puntos de interrupción adaptables para contraerse en dispositivos móviles. Las barras laterales sticky, los anchos contraíbles y los atributos ARIA accesibles completan patrones de producción para barras laterales y pies de página.
Preguntas frecuentes
¿La lección «Layout con footer y sidebar fijos» es gratis?
Sí — el texto completo de «Layout con footer y sidebar fijos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de CSS Academy, actualiza a CoddyKit PRO. El curso de CSS Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Layout con footer y sidebar fijos»?
Cree layouts con footers y sidebars fijos que ocupen toda la altura mediante Grid o Flexbox. Practicas CSS Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar CSS Academy?
No se requiere experiencia previa. CSS Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Layout con footer y sidebar fijos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de CSS Academy?
Sí. Cada lección de CSS Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Layout con footer y sidebar fijos
- Layout Holy Grail con Grid
- Layout masonry: enfoques con CSS y JS
- Diseño intrínseco: dimensionamiento basado en el contenido