Posiciones CSS

La propiedad position

La propiedad position especifica el tipo de posición para una etiqueta. Hay cinco diferentes valores para la posición:

  • static
  • relative
  • fixed
  • absolute
  • sticky

La propiedad position trabaja en combinación con las propiedades top, bottom, left y right. Sin embargo, estas propiedades no funcionarán a menos que sea especificada la propiedad position primero y su funcionamiento dependerá del tipo de position.

El valor static

El valor de posición predeterminado de las etiquetas HTML es static. Las etiquetas HTML con position: static; no les afecta los valores de las propiedades top, bottom, left y right. Una etiqueta HTML con position: static; no es posicionado en algún lugar en especial sino que es posicionado de acuerdo al flujo normal de la página.

div.estatico {
position: static;
border: 1px solid black;
}

El valor relative

Una etiqueta HTML con position: relative; es posicionado relativo a su posición normal.

div.relativo {
position: relative;
left: 30px;
border: 1px solid black;
}

El valor fixed

Una etiqueta con position: fixed; es fijada con relación a la ventana del navegador web, lo que significa siempre permanece en el mismo lugar, incluso si la página es desplazada. Las propiedades top, bottom, left y right se utilizan para posicionar la etiqueta. Una etiqueta con posición fija no deja un espacio o hueco en la página donde normalmente se ubicaría, es decir, no es considerada por el flujo normal de la página.

div.fijo {
position: fixed;
bottom: 0;
right: 0;
width: 300px;
border: 1px solid black;
}

El valor absolute

Una etiqueta HTML con position: absolute; es posicionado con relación con la etiqueta HTML que la contiene (si está anidado). Sin embargo, si la etiqueta HTML que lo contiene no tiene posicionamiento o no está anidado a ninguna etiqueta HTML, se posiciona en relación de la etiqueta body (documento HTML) y se muevo con el desplazamiento de la página.

Nota: Una etiqueta con posicionamiento es aquella que su posición no es static.

div.absoluta {
position: absolute;
top: 60px;
right: 0;
width: 200px;
height: 100px;
border: 1px solid black;
}

El valor sticky

Una etiqueta HTML con position: sticky; es posicionado de acuerdo al desplazamiento de la ventana. Este posicionamiento alterna entre un posicionamiento a relativo y fijado, dependiendo del desplazamiento de la ventana. Es posicionado como relativo hasta que queda fuera de vista con el desplazamiento de la ventana quedando pegada en un lugar fijo.

Nota: Navegadores antiguos no soportan el position: sticky;.

div.pegajoso {
position: sticky;
top: 0;
background: green;
border: 1px solid black;
}

La propiedad z-index

Cuando hay etiquetas posicionadas es posible que se sobrepongan a otras etiquetas. La propiedad z-index especifica el orden de apilamiento de una etiqueta posicionada, es decir, que etiqueta debe colocarse delante o detrás que se refleja cuando hay etiquetas que se sobreponen a otras. El valor de la propiedad z-index es un valor numérico entero, permitiéndose valores negativos. El valor mayor será visualizado al frente de las tengan valores menores.

img {
position: absolute;
left: 0;
top: 0;
z-index: -1;
}

Nota: si dos elementos posicionados se superponen sin un z-index especificado, el elemento posicionado al final en el código HTML se mostrará en la parte superior.

La propiedad clip

La propiedad clip especifica un rectángulo para acortar una etiqueta HTML con posicionamiento absoluto. El rectángulo es especificado por cuatro coordenadas a partir de esquina superior izquierda de la etiqueta a recortar.

img {
position: absolute;
clip: rect(0px, 60px, 200px, 0px);
}

Nota: La propiedad clip no funciona si la etiqueta esta especificada como overflow: visible;.

Las propiedades de posición

Propiedad Descripción
bottom Especifica el borde inferior de una etiqueta posicionada.
clip Acorta una etiqueta posicionada como absoluta. 
left Especifica el borde izquierdo de una etiqueta posicionada. 
position Especifica el tipo de posicionamiento para una etiqueta.
right Especifica el borde derecho de una etiqueta posicionada.
top Especifia el borde superior de una etiqueta posicionada.
z-index Especifica el orden de apilamiento de una etiqueta.