CSS: Posicionamiento
Domina el posicionamiento en CSS y crea layouts precisos con técnicas como relative, absolute, fixed y sticky para tus diseños web.
Aprende CSS GRATIS y certifícatePosicionamiento en CSS
El posicionamiento es uno de los conceptos fundamentales en CSS que determina cómo se ubican los elementos en una página web. Comprender las diferentes técnicas de posicionamiento te permitirá crear layouts precisos y controlar exactamente dónde aparece cada elemento en tu diseño.
¿Qué es el posicionamiento?
Por defecto, los elementos HTML siguen el flujo normal del documento, apareciendo uno después del otro según su orden en el HTML. Sin embargo, CSS nos proporciona herramientas para alterar este comportamiento y colocar elementos en posiciones específicas.
La propiedad position
es la base del sistema de posicionamiento en CSS. Esta propiedad acepta diferentes valores que cambian completamente cómo se comporta un elemento en relación con otros elementos y con la ventana del navegador.
Tipos de posicionamiento
Position static
El valor static es el posicionamiento por defecto de todos los elementos. Los elementos con position: static
siguen el flujo normal del documento y no pueden ser movidos usando las propiedades top
, right
, bottom
o left
.
.elemento {
position: static; /* Valor por defecto */
}
Position relative
El posicionamiento relativo permite mover un elemento desde su posición original sin afectar el espacio que ocupa en el flujo del documento. El elemento se desplaza en relación a su posición natural.
.caja-relativa {
position: relative;
top: 20px;
left: 30px;
}
En este ejemplo, la caja se moverá 20 píxeles hacia abajo y 30 píxeles hacia la derecha desde su posición original, pero el espacio que ocupaba originalmente se mantiene reservado.
Position absolute
El posicionamiento absoluto saca completamente el elemento del flujo normal del documento. El elemento se posiciona en relación al ancestro posicionado más cercano (un elemento con position
diferente a static
).
.contenedor {
position: relative; /* Contexto de posicionamiento */
}
.elemento-absoluto {
position: absolute;
top: 10px;
right: 15px;
}
El elemento con position: absolute
se posicionará a 10 píxeles del borde superior y 15 píxeles del borde derecho de su contenedor posicionado más cercano.
Position fixed
Los elementos con posicionamiento fijo se posicionan en relación a la ventana del navegador y permanecen en la misma posición incluso cuando el usuario hace scroll por la página.
.barra-navegacion {
position: fixed;
top: 0;
left: 0;
width: 100%;
background-color: #333;
}
Esta técnica es muy útil para crear barras de navegación que siempre permanecen visibles o botones de "volver arriba".
Position sticky
El posicionamiento sticky combina características del posicionamiento relativo y fijo. El elemento se comporta como relative
hasta que alcanza una posición específica durante el scroll, momento en el que se "pega" como si fuera fixed
.
.encabezado-pegajoso {
position: sticky;
top: 0;
background-color: white;
border-bottom: 1px solid #ddd;
}
Propiedades de desplazamiento
Las propiedades top, right, bottom y left determinan la posición exacta de los elementos posicionados. Estas propiedades solo funcionan con elementos que tienen un valor de position
diferente a static
.
.elemento-posicionado {
position: absolute;
top: 50px; /* Distancia desde el borde superior */
left: 100px; /* Distancia desde el borde izquierdo */
}
Estas propiedades aceptan diferentes unidades: píxeles (px
), porcentajes (%
), em, rem, y otras unidades de CSS.
La propiedad z-index
Cuando los elementos se superponen, la propiedad z-index controla qué elemento aparece encima de otros. Los elementos con mayor valor de z-index
aparecen por encima de aquellos con valores menores.
.elemento-fondo {
position: absolute;
z-index: 1;
}
.elemento-frente {
position: absolute;
z-index: 10; /* Aparecerá encima */
}
Es importante recordar que z-index
solo funciona con elementos posicionados (que tengan position
diferente a static
).
Contextos de posicionamiento
Un contexto de posicionamiento se crea cuando un elemento tiene cualquier valor de position
excepto static
. Los elementos con position: absolute
se posicionan en relación al contexto de posicionamiento más cercano en la jerarquía HTML.
.contenedor-padre {
position: relative; /* Crea un contexto */
}
.hijo-absoluto {
position: absolute;
bottom: 0;
right: 0; /* Se posiciona respecto al padre */
}
Si no existe ningún ancestro posicionado, el elemento se posicionará respecto al elemento <html>
.
Casos de uso prácticos
El posicionamiento se utiliza frecuentemente para crear overlays, tooltips, menús desplegables y layouts complejos. También es fundamental para crear elementos que deben permanecer en posiciones específicas independientemente del contenido circundante.
.tooltip {
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
background-color: #333;
color: white;
padding: 5px 10px;
border-radius: 4px;
}
Este ejemplo muestra cómo crear un tooltip que aparece centrado debajo de su elemento padre.
Lecciones de este módulo de CSS
Lecciones de programación del módulo Posicionamiento del curso de CSS.