El posicionamiento CSS ha sido durante mucho tiempo una parte importante de la creación de diseños de sitios web. Incluso con el auge de las técnicas de diseño CSS como Flexbox y CSS Grid, el posicionamiento sigue ocupando un lugar importante en la bolsa de trucos de cualquier diseñador web.
Cuando se utiliza el posicionamiento CSS, lo primero que hay que hacer es establecer la propiedad CSS de posición para indicar al navegador si se va a utilizar el posicionamiento absoluto o relativo para un elemento determinado. También es necesario comprender la diferencia entre estas dos propiedades de posicionamiento.
Mientras que absolutas y relativas son las dos propiedades de posición CSS más utilizadas en el diseño web, en realidad hay cuatro estados de la propiedad de posición:
- estática
- absoluto
- pariente
- fijo
Índice de contenidos
Posicionamiento estático
Estática es la posición por defecto para cualquier elemento de una página web. Si no se define la posición de un elemento, es estática, lo que significa que se visualiza en la pantalla en función de dónde se encuentra en el documento HTML y cómo se visualiza dentro del flujo normal de ese documento.
Si aplica reglas de posicionamiento como top o left a un elemento que tiene una posición estática, esas reglas se ignoran y el elemento permanece donde aparece en el flujo de documentos normal. Rara vez, o nunca, es necesario establecer un elemento en una posición estática en CSS porque es el valor por defecto.
Posicionamiento absoluto de CSS
El posicionamiento absoluto es probablemente la posición de CSS más fácil de entender. Comienza con esta propiedad de posición CSS:
Este valor le indica al navegador que cualquier cosa que se vaya a colocar debe ser removida del flujo normal del documento y colocada en una ubicación exacta en la página. Esto se calcula basándose en el antepasado no estáticamente posicionado más cercano de ese elemento. Debido a que un elemento absolutamente posicionado es sacado del flujo normal del documento, esto afecta la forma en que los elementos antes o después de él en el HTML son posicionados en la página web.
Por ejemplo, si tiene una división que está posicionada usando un valor de relativo y dentro de esa división, tiene un párrafo que quiere posicionar 50 píxeles desde la parte superior de la división, agregue un valor de posición de absoluto a ese párrafo junto con un valor de desplazamiento de 50px en la propiedad superior , así:
posición: absoluta;
.top: 50px;Este elemento absolutamente posicionado siempre muestra 50 píxeles desde la parte superior de esa división relativamente posicionada, sin importar qué más se muestre allí en flujo normal. Su elemento absolutamente posicionado utiliza el relativamente posicionado como su contexto, y el valor de posicionamiento que usted utiliza es relativo a eso.
Las cuatro propiedades de posicionamiento que tiene a su disposición son:
- arriba
- derecha
- abajo
- izquierdo
Puede utilizar arriba o abajo - ya que un elemento no se puede posicionar de acuerdo con estos dos valores - y a la derecha o a la izquierda .
Si un elemento se establece en una posición de absoluto, pero no tiene antepasados no estáticamente posicionados, entonces se posiciona en relación con el elemento del cuerpo, que es el elemento de nivel más alto de la página.
Posicionamiento relativo
El posicionamiento relativo utiliza las mismas cuatro propiedades de posicionamiento que el posicionamiento absoluto, pero en lugar de basar la posición del elemento en su antepasado no estáticamente posicionado más cercano, parte de donde estaría el elemento si estuviera todavía en el flujo normal.
Por ejemplo, si tiene tres párrafos en su página web y el tercero tiene una posición : estilo relativo , su posición se desplaza en función de su ubicación actual.
En el ejemplo anterior, el tercer párrafo se sitúa a 2em del lado izquierdo del elemento de contenedor, pero aún por debajo de los dos primeros párrafos. Permanece en el flujo normal del documento y se desplaza ligeramente. Si lo cambia a posición: absoluta , cualquier cosa que le siga se mostrará encima porque ya no está en el flujo normal del documento.
Los elementos de una página web se utilizan a menudo para establecer un valor de posición : relativo sin establecer un valor de desplazamiento, lo que significa que el elemento permanece exactamente donde aparecería en el flujo normal. Esto se hace únicamente para establecer ese elemento como un contexto contra el cual otros elementos pueden ser posicionados absolutamente. Por ejemplo, si tiene una división alrededor de todo su sitio web con un valor de clase de contenedor , que es un escenario común en el diseño web, esa división se puede establecer en una posición de relativa para que cualquier cosa dentro de ella pueda utilizarla como contexto de posicionamiento.
¿Qué pasa con el posicionamiento fijo?
El posicionamiento fijo es muy parecido al posicionamiento absoluto. La posición del elemento se calcula de la misma manera que en el modelo absoluto, pero los elementos fijos se fijan en ese lugar, casi como una marca de agua. Todo lo demás en la página luego se desplaza más allá de ese elemento.
Para utilizar este valor de propiedad, se fija:
Tenga en cuenta que cuando fija un elemento en su sitio, se imprime en esa ubicación cuando se imprime su página web. Por ejemplo, si su elemento está fijado en la parte superior de su página, aparecerá en la parte superior de cada página impresa porque está fijado en la parte superior de la página. Puede utilizar tipos de medios para cambiar la forma en que las páginas impresas muestran los elementos fijos:
Pantalla
@media {
>@media h1#first { posición: fija; }
}
@media print {
h1#first { posición: estática; }
}