Estilos>>Absolutamente relativo
Este título aparentemente paradójico procede el título original de un artículo en inglés Relatively Absolute de Tommy Olson en el que se intenta ofrecer una aclaración del sentido de los diversos modos de posicionamiento mediante CSS. De hecho el contenido de este apartado del curso no es una traducción del mismo pero sí una adaptación basada en lo que allí se plantea.
Para diseñar una página web, además de las decisiones referentes a las fuentes, colores y elementos gráficos, hay que elegir una disposición de los componentes para lo cual se pueden emplear tablas, flotaciones y posicionamiento.
El uso de las tablas, aunque sigue siendo probablemente el método más extendido es el menos recomendable de todos por su incidencia negativa en la accesibilidad y su falta de adecuación para una correcta estructuración de la información. De hecho está totalmente desaconsejado con el W3C.
La utilizacion de la propiedad float es un método mucho más acorde con los estándares y puede ser suficiente en muchas ocasiones.
El posicionamiento es la tercera técnica y la que más dificultades de interpretación tiene, por lo que vamos a intentar aclararlo.
Para empezar vamos a tomar como referencia una serie numérica: 1, 2, 3,... en la que cada número ocupa de forma natural una posición: el 2 aparece detrás del 1 y antes del 3. Los elementos que componen una página web siguen el mismo esquema y tienen un orden natural que es su orden de aparición en el código que genera la página, por lo que podríamos decir que coincidirían con el comportamiento de una serie numérica. (Fíjate que he especificado el orden de aparición en el código, no el orden de aparición en la página porque podríamos confundirnos con lo que vemos si nos guiamos por la presentación de los elementos en pantalla)
Una vez fijada la referencia consideremos los diferentes
valores que puede adoptar la propiedad position
staticposition:static
se situará en la ventana en la
posición por defecto de acuerdo a su orden de
aparición en el flujo del documento, sin modificar la
posición. Dada esta particularidad podría
pensarse que su efecto será nulo. En parte es
así ya que no sirve para modificar la posición de
un elemento, pero en algún momento será necesario
recurrir a este valor para restaurar los valores por defecto.position:relative
pero no
especificamos ningún valor de desplazamiento el efecto es el
mismo que si no la hubiéramos aplicado o hubiéramos
utilizado el valor por defecto position:static
.
Si le adjudicamos un valor top:10px
el elemento se desplazará 10
píxeles hacia abajo respecto a la que habría sido su
posición normal. También podríamos ponerle valores
negativos. Además, dado que lo único que hacemos es
desplazar el elemento pero éste sigue ocupando lo mismo,
es innecesario especificar un valor para bottom
o right
si lo hemos
hecho para top
y left
(o viceversa)position:relative
, dispongan de un nuevo punto de cálculo,
especialmente cuando se utilice el valor absolute.position:absolute
y le aplicamos un
desplazamiento la nueva posición se calcula localizando el primer
ancestro posicionado y situando los bordes a la distancia indicada
respecto a los bordes de ese elemento. En caso de que no exista
ningún ancestro posicionado la especificación CSS2. toma
como referencia el bloque contenedor inicial, indicando que será
el navegador el que determine cuál es, lo cual suele
traducirse en que se toma como referencia el elemento body
que
coincide con la ventana de la aplicación.