¿Alguien puede decirme la diferencia entre style = "position:absolute"
y style = "position:relative"
y cómo se diferencian en caso de que lo agregue a los elementos div
/ span
/ input
?
Lo estoy usando absolute
ahora mismo, pero también quiero explorar relative
. ¿Cómo cambiará esto el posicionamiento?
css
css-position
Varun
fuente
fuente
Respuestas:
El posicionamiento absoluto significa que el elemento se saca completamente del flujo normal del diseño de la página. En cuanto al resto de elementos de la página, el elemento absolutamente posicionado simplemente no existe. El elemento en sí se dibuja por separado, una especie de "encima" de todo lo demás, en la posición que especifique utilizando los
left, right, top and bottom
atributos.Usando la posición que especifique con estos atributos, el elemento se coloca en esa posición dentro de su último elemento ancestro que tiene un atributo de posición de cualquier otra cosa que no sea
static
(elementos de página predeterminados como estáticos cuando no se especifica ningún atributo de posición), o el cuerpo del documento (navegador viewport) si no existe tal ancestro.Por ejemplo, si tuviera este código:
...el
<div>
colocaría a 20px desde la parte superior de la ventana del navegador y a 20px desde el borde izquierdo de la misma.Sin embargo, si hiciera algo como esto:
... entonces el
inner
div se colocaría 20px desde la parte superior delouter
div, y 20px desde el borde izquierdo del mismo, porque elouter
div no está posicionado conposition:static
porque lo hemos configurado explícitamente para usarposition:relative
.El posicionamiento relativo, por otro lado, es como decir que no hay posicionamiento en absoluto, pero el
left, right, top and bottom
atributos "empujan" al elemento fuera de su diseño normal. Sin embargo, el resto de los elementos de la página todavía se distribuyen como si el elemento estuviera en su lugar normal.Por ejemplo, si tuviera este código:
... entonces los tres
<span>
elementos se colocarían uno al lado del otro sin superponerse.Si configuro el segundo
<span>
para usar el posicionamiento relativo, así:... entonces Span2 se superpondría al lado derecho de Span1 en 5px. Span1 y Span3 se ubicarían exactamente en el mismo lugar que en el primer ejemplo, dejando un espacio de 5px entre el lado derecho de Span2 y el lado izquierdo de Span3.
Espero que aclare un poco las cosas.
fuente
Posicionamiento relativo: el elemento crea sus propios ejes de coordenadas, en una ubicación desplazada desde el eje de coordenadas de la ventana gráfica. Es parte del flujo de documentos pero cambiado.
Posicionamiento absoluto: un elemento busca los ejes de coordenadas disponibles más cercanos entre sus elementos principales. A continuación, el elemento se posiciona especificando desplazamientos desde este eje de coordenadas. Se elimina del flujo normal del documento.
Fuente
fuente
Definitivamente querrá consultar este artículo de posicionamiento de 'Una lista aparte'. Ayudó a desmitificar el posicionamiento CSS (que me parecía una locura, antes de este artículo).
fuente
Con el posicionamiento CSS, puede colocar un elemento exactamente donde lo desee en su página.
Cuando vaya a utilizar el posicionamiento CSS, lo primero que debe hacer es utilizar la posición de la propiedad CSS para indicarle al navegador si va a utilizar el posicionamiento absoluto o relativo.
Ambas posiciones tienen características diferentes. En CSS Una vez que establezca la Posición, podrá usar los atributos superior, derecha, inferior e izquierda.
Posición absoluta
Posición relativa
Para colocar un elemento de forma relativa, la posición de la propiedad se establece como relativa. La diferencia entre el posicionamiento absoluto y relativo es cómo se calcula la posición.
Más: posición relativa vs absoluta
fuente
OK, una respuesta muy obvia aquí ... básicamente la posición relativa es relativa al elemento o ventana anterior, mientras que a la absoluta no le importan los otros elementos a menos que sea un padre si usa top and left ...
Mira el ejemplo que creo para ti para mostrar las diferencias ...
También puedes verlo en acción, usando el CSS que creo para ti, puedes ver cómo se comportan las posiciones absolutas y relativas:
fuente
El posicionamiento absoluto se basa en las coordenadas de la pantalla:
^ coloca el elemento en la parte superior izquierda de la ventana.
La posición relativa es relativa al lugar donde se coloca el elemento:
^ coloca el elemento 1px hacia abajo y 1px desde la izquierda de donde estaba originalmente :)
fuente
Relativo:
Un elemento con
position: relative;
está posicionado en relación con su posición normal.Si no agrega atributos de posicionamiento (superior, izquierda, inferior o derecha) en un elemento relativo, no tendrá ningún efecto en su posicionamiento. Se comportará exactamente como un
position: static
elemento.Pero si agrega algún otro atributo de posicionamiento, digamos, top: 10px ;, cambiará su posición 10 píxeles hacia abajo desde donde normalmente estaría.
Un elemento con este tipo de posicionamiento se ve afectado por otros elementos y él mismo también afecta a otros.
Absoluto:
Un elemento con le
position: absolute;
permite colocar cualquier elemento exactamente donde desea que esté. Utiliza los atributos de posicionamiento arriba, izquierda, abajo. y a la derecha para establecer la ubicación.Se coloca en relación con el antepasado no estático más cercano. Si no existe tal contenedor, se coloca en relación con la propia página.
Se elimina del flujo normal de elementos en la página.
Un elemento con este tipo de posicionamiento no se ve afectado por otros elementos y tampoco afecta el flujo de otros elementos.
Vea este ejemplo autoexplicativo para mayor claridad. https://codepen.io/nyctophiliac/pen/BJMqjX
fuente
Absolute coloca el objeto (div, span, etc.) en una ubicación forzada absoluta (generalmente determinada en píxeles) y relativo lo ubicará a cierta distancia de donde normalmente estaría su ubicación. Por ejemplo:
Podría hacer que el lado izquierdo del texto desaparezca si estuviera dentro de los 20 px del borde izquierdo de la pantalla.
fuente
position: absolute
se puede colocar en cualquier lugar y permanecer allí, como 0,0.position: relative
se coloca con un desplazamiento de la ubicación en la que se colocó originalmente en el navegador.fuente
position: acto relativo como elemento padre position: acto absoluto hijo de posición relativa. puedes ver el siguiente ejemplo
fuente