Los top
, bottom
, left
, y right
propiedades se utilizan con la posición para ajustar la colocación de un elemento. Solo tienen efecto sobre los elementos posicionados, que son elementos con la position
propiedad establecida en cualquier otro valor que static
. Por ejemplo: relative
, absolute
, fixed
, o sticky
.
div ( : || || auto || inherit; )
Puede usarlo, por ejemplo, para colocar un icono en su lugar:
button .icon ( position: relative; top: 1px; )
O coloque un elemento especial dentro de un contenedor.
.container ( position: relative; ) .container header ( position: absolute; top: 0; )
El valor de top
, bottom
, left
, y right
puede ser cualquiera de los siguientes:
- cualquiera de las longitudes válidas de CSS
- un porcentaje de la altura del elemento contenedor (para
top
ybottom
) o el ancho (paraleft
yright
) auto
inherit
El elemento generalmente se alejará de un lado dado cuando su valor sea positivo y hacia él cuando el valor sea negativo. En el siguiente ejemplo, una longitud positiva para top
mueve el elemento hacia abajo (lejos de la parte superior) y una longitud negativa para top
moverá el elemento hacia arriba (hacia la parte superior):
Vea Pen
Top: valores positivos y negativos de Matsuko Friedland (@missmatsuko)
en CodePen.
Posición
La colocación de un elemento con un valor para top
, bottom
, left
, o right
depende de su valor para position
. Echemos un vistazo a lo que sucede cuando establecemos el mismo valor para top
en elementos con diferentes valores para position
.
static
La top
propiedad no tiene ningún efecto sobre los elementos no posicionados (elementos con position
establecido en static
). Así es como se posicionan los elementos por defecto. Puede usarlo position: static;
como un método para deshacer el efecto de top
en un elemento.
relative
Cuando top
se establece en un elemento con position
establecido en relative
, el elemento se moverá hacia arriba o hacia abajo en relación con su ubicación original en el documento.
Vea Pen
Top: pariente de Matsuko Friedland (@missmatsuko)
en CodePen.
absolute
Cuando top
se establece en un elemento con position
establecido en absolute
, el elemento se moverá hacia arriba o hacia abajo en relación con su antepasado posicionado más cercano (o el documento, si no hay antepasados posicionados).
En esta demostración, el cuadro rosa de la izquierda se coloca 50px hacia abajo desde la parte superior de la página porque no tiene elementos ancestros posicionados. El cuadro rosa de la derecha se coloca 50px hacia abajo desde la parte superior de su padre, porque el padre tiene una position
de relative
.
Vea Pen
Top: absoluto de Matsuko Friedland (@missmatsuko)
en CodePen.
fixed
Cuando top
se establece en un elemento con position
establecido en fixed
, el elemento se moverá hacia arriba o hacia abajo en relación con la ventana del navegador.
Vea el Pen
Top: corregido por CSS-Tricks (@ css-tricks)
en CodePen.
A primera vista, puede parecer que no hay diferencia entre absolute
y fixed
. La diferencia se puede ver cuando los compara en una página que tiene suficiente contenido para desplazarse. A medida que se desplaza hacia abajo, el fixed
elemento de posición siempre está a la vista, mientras que el absolute
elemento de posición se desplaza.
Vea el
desplazamiento del lápiz : fijo frente a absoluto mediante CSS-Tricks (@ css-tricks)
en CodePen.
sticky
Cuando top
se establece en un elemento con position
establecido en sticky
, el elemento se moverá hacia arriba o hacia abajo en relación con el antepasado más cercano con un cuadro de desplazamiento (o la ventana gráfica, si ningún antepasado tiene un cuadro de desplazamiento), limitado a los límites de su elemento contenedor.
La configuración top
de un sticky
elemento posicionado no hace mucho a menos que su contenedor sea más alto de lo que es y tenga suficiente contenido para desplazarse. Al igual que con fixed
, el elemento permanecerá a la vista mientras se desplaza. A diferencia fixed
, el elemento desaparecerá de la vista una vez que alcance los bordes de su elemento contenedor.
Vea Pen
Scrolling: arreglado vs pegajoso por CSS-Tricks (@ css-tricks)
en CodePen.
Gotchas
Establecer lados opuestos
Se puede establecer un valor para cada uno de top
, bottom
, left
, y right
en un solo elemento. Cuando establece valores para lados opuestos ( top
y bottom
, o left
y right
), es posible que el resultado no siempre sea el esperado.
En la mayoría de los casos, bottom
se ignora si top
ya está configurado y right
se ignora si left
ya está configurado. Cuando la dirección se establece en rtl
(de derecha a izquierda), left
se ignora en lugar de right
. Para que cada valor tenga un efecto, el elemento debe tener un position
conjunto en absolute
o fixed
y un height
conjunto en auto
(predeterminado).
En este ejemplo, hemos creado top
, bottom
, left
, y right
a `20px`, y esperamos que cada lado de la caja interior para ser 20 píxeles de distancia de los lados de la caja exterior:
Vea la
configuración del lápiz en la parte superior, inferior, izquierda y derecha de CSS-Tricks (@ css-tricks)
en CodePen.
Cuando se fija no es relativo a la ventana gráfica
Los elementos position
configurados en fixed
no siempre se colocan en relación con la ventana gráfica. Se coloca en relación con su ancestro más cercano con una transform
, perspective
o filter
conjunto de propiedades para que no sea nada none
, si es que existe.
Agregar o quitar espacio
Si colocó un elemento y descubrió que ahora hay un espacio vacío o no hay suficiente espacio donde esperaba, es posible que tenga que ver con si el elemento está dentro o fuera del flujo del documento.
Cuando un elemento se elimina del flujo del documento, significa que el espacio que ocupaba originalmente en la página desaparece. Este es el caso cuando un elemento está posicionado absolute
o fixed
. En este ejemplo, el cuadro contenedor del elemento absolutamente posicionado se ha colapsado porque el elemento absolutamente posicionado se eliminó del flujo del documento:
Consulte el
flujo de documentos de lápiz de Matsuko Friedland (@missmatsuko)
en CodePen.
Soporte del navegador
Puede echar un vistazo, pero no hay preocupaciones entre navegadores para la top
propiedad. Úselo a voluntad.