Para posicionar un elemento en la pagina se puede usar los siguientes propiedades.
Propiedad | Descripción |
---|---|
position | Tipo de posicionamiento. La mas importante. |
top | Establece la posicion del borde superior del elemento. |
right | Establece la posicion del borde derecho del elemento. |
botton | Establece la posicion del borde inferior del elemento. |
left | Establece la posicion del borde izquierdo del elemento. |
clip | Recorta un elemento absolutamente posicionado |
z-index | Establece el orden de apilamiento de un elemento superpuestos |
Los elementos se posicionan usando las propiedades: top, right, botton y left. Sin embargo, estas propiedades no funcionarán a menos que la propiedad position se establezca primero. También funcionan de manera diferente según el valor de la posición.
Un elemento estático con position: static; no está posicionado de ninguna manera especial; siempre se posiciona de acuerdo con el flujo normal de la página.
Los elementos asi posicionados no se ven afectados por las propiedades: top, right, botton y left.
div.static { position: static; border: 3px solid red; }
Un elemento relativo con position: relative; se coloca en relación con su posición normal.
Establecer las propiedades: top, right, botton y left de un elemento relativamente posicionado hará que se ajuste fuera de su posición normal. Otro contenido no se ajustará para encajar en ningún espacio dejado por el elemento.
div.relative { position: relative; left: 30px; border: 3px solid red; }
Un elemento fijo con position: fixed; se coloca con respecto a la ventana gráfica, lo que significa que siempre permanece en el mismo lugar incluso si se desplaza la página.
Las propiedades: top, right, botton y left se usan para posicionar el elemento.
Un elemento fijo no deja un espacio en la página donde normalmente se habría ubicado. Observe el elemento fijo en la esquina inferior derecha de la página.
div.fixed { position: fixed; bottom: 0; right: 0; width: 300px; border: 3px solid red; }
Un elemento absoluto con position: absolute; se posiciona en relación con el ancestro posicionado más cercano (en lugar de posicionado en relación con la ventana gráfica, como fijo).
Sin embargo; si un elemento position: absolute; no tiene ancestros posicionados, usa el cuerpo del documento y se mueve junto con el desplazamiento de la página.
Un elemento "posicionado" es aquel cuya posición es cualquier cosa menos static.
div.relative { position: relative; width: 400px; height: 200px; border: 3px solid red; } div.absolute { position: absolute; top: 80px; right: 0; width: 200px; height: 100px; border: 3px solid navy; }
Un elemento adhesivo con position: sticky; se coloca en función de la posición de desplazamiento del usuario.
Un elemento adhesivo alterna entre relativey fixed, según la posición de desplazamiento. Se posiciona en relación hasta que se alcanza una posición de desplazamiento determinada en la ventana gráfica, luego se "pega" en su lugar (como posición: fija).
div.sticky { position: -webkit-sticky; /* Safari */ position: sticky; top: 0; background-color: blue; border: 2px solid navy; }
Las propiedades: top, right, bottom y left se usan para posicionar el elemento siempre que primero se defina la propiedad position: fija; o absoluta;.
Valor | Descripción |
---|---|
auto | Permite al navegador calcular la posición del borde superior. Esto es por defecto |
tamaño | Se puede usar: px, cm o %. Valores negativos permitidos. |
initial | Establece esta propiedad en su valor predeterminado. |
inheit | Hereda esta propiedad de su elemento padre. |
La propiedad top afecta la posición vertical de un elemento posicionado. Esta propiedad no tiene efecto en elementos no posicionados.
top: auto|tamaño|initial|inherit;
Condiciones de aplicacion:
Establezca el borde superior del elemento posicionado 50px hacia abajo desde el borde superior de su antepasado posicionado más cercano.
div { position: absolute; top: 50px; border: 3px solid green; }
Establezca el borde superior del elemento posicionado 20px hacia arriba desde el borde superior de su antepasado posicionado más cercano.
p { position: fixed; top: -20px; border: 3px solid blue; }
La propiedad right afecta la posición horizontal de un elemento posicionado. Esta propiedad no tiene efecto en elementos no posicionados.
right: auto|tamaño|initial|inherit;
Condiciones de aplicacion:
div.absolute { position: absolute; right: 150px; width: 200px; height: 120px; border: 3px solid green; }
bottom: auto|tamaño|initial|inherit;
Condiciones de aplicacion:
div.absolute { position: absolute; bottom: 10px; width: 50%; border: 3px solid #8AC007; }
La propiedad left afecta la posición horizontal de un elemento posicionado. Esta propiedad no tiene efecto en elementos no posicionados.
left: auto|tamaño|initial|inherit;
Condiciones de aplicacion:
div { position: absolute; left: 150px; width: 200px; height: 120px; border: 3px solid green; }
Qué sucede si una imagen es más grande que su elemento contenedor ? La propiedad clip le permite especificar un rectángulo para recortar un elemento posicionado absolutamente. El rectángulo se especifica como cuatro coordenadas, todas desde la esquina superior izquierda del elemento a recortar.
clip: auto|shape|initial|inherit;
Esta propiedad no funciona si la propiedad desbordamiento: visible;
Valor | Descripción |
---|---|
auto | Permite al navegador calcular la posición del borde superior. Esto es por defecto |
shape | Recorta un elemento. El único valor válido es: rect (arriba, derecha, abajo, izquierda) |
initial | Establece esta propiedad en su valor predeterminado. |
inheit | Hereda esta propiedad de su elemento padre. |
Esta propiedad es reemplazada por clip-path
Recortar una imagen
img { position: absolute; clip: rect(0px,60px,200px,0px); }
La propiedad clip-path le permite recortar un elemento a una forma básica o a una fuente SVG.
Esta propiedad reemplaza a clip
Recorte una imagen en un círculo del 50%
img { clip-path: circle(50%); }
La propiedad z-index especifica el orden de apilamiento de un elemento. Un elemento con un orden de pila mayor siempre está encima de un elemento con un orden de pila menor.
z-index: auto | numero | initial | inherit;
Solo funciona en elementos posicionados posición: relativa, fija o absoluta.
Valor | Descripción |
---|---|
auto | Permite al navegador calcular la posición del borde superior. Esto es por defecto |
numero | Establece el orden de apilamiento del elemento. Se permiten números negativos. |
initial | Establece esta propiedad en su valor predeterminado. |
inheit | Hereda esta propiedad de su elemento padre. |
Establezca el índice z para una imagen.
img { position: absolute; left: 0px; top: 0px; z-index: -1; }