Position absolute y relative

Agregar a favoritos

16 Comentarios

Posteado hace 289 días en:

Este tip puede ser una tontería pero es algo que a simple vista no se tiene en cuenta.

Cuando usamos position absolute sabemos que la capa se mueve con las propiedades top,left, right y bottom, pero si la caja contenedora tiene position relative el elemento se mueve en relación al tamaño de la caja y no de la página web.

Lo vemos por ejemplo para redondear capas o añadir sombras.

<div>
    <h3>Hola!</h3>
</div>

div {
position:relative;
}

div h3 {
position:absolute;
top:0;
left:0;
}

La diferencia de usar position relative la puedes ver en este pequeño gráfico.

relative


  • avatar

    nils#1 hace 289 días

    Es curioso, desde hace mucho he intentado conseguir posicionar capas de esa manera sin saber bien cómo hacerlo realmente hasta que al final di con esta página con un tutorial de posicionar capas que me enseñó ese mismo truco y además de otros trucos interesantes.

    Un saludo, Nils


  • avatar

    DrSlump#2 hace 289 días

    Buen apunte. En realidad cualquier tipo de posicionamiento (position) que no sea 'static' tiene ese efecto. Es decir, tanto 'absolute', como 'fixed' (no disponible en IE), como 'relative' crean un nuevo contexto contenedor.

    Cabe recordar que para utilizar el método por defecto (útil cuando queremos sobre-escribir un estilo) podemos utilizar 'static'.

    Ojo también con 'fixed', ya que este modo de posicionado siempre utiliza como referencia el viewport actual, es decir la parte visible en cada momento de la página web. Esto a veces puede llevar a equivoco cuando queremos posicionar algo relativamente a otro elemento.

    Saludos


  • avatar

    nils#3 hace 289 días

    Perdón, pensé que se podian poner link con html, el enlace es este: Learn CSS Positioning in Ten Steps


  • avatar

    Alex#4 hace 289 días

    Para la posición "normal" que comentas, se tendría que usar la propiedad position: fixed (aunque a IE no le guste).


  • avatar

    IceBeat#5 hace 288 días

    Ostras muchas gracias por los tips, creo que son incluso igual de importantes que el post.


  • avatar

    Welk#6 hace 281 días

    Weno fixed a IE7 si le mola jejeje


  • avatar

    IceBeat#7 hace 281 días

    Shhhh IE7 shhhh :P


  • avatar

    Welk#8 hace 278 días

    Que le vamos a hacer si está en todos lados, aunque poco a poco . . . . , resignación


  • avatar

    wydblog#9 hace 272 días

    tan simple pero tan efectivo!

    saludos,

    Lucas.


  • avatar

    IceBeat#10 hace 271 días

    Ya ves @8

    @wydblog jeje si.


  • avatar

    jose ignacio#11 hace 271 días

    WWW.INTERSOF18.CREARPHPNUKE.COM


  • avatar

    nils#12 hace 221 días

    Hay un pequeño problema al usar este método con IE, tanto en la versión 6 como en la 7 y es que parece ser que las capas que están posicionadas con relative en IE se mueven al redimensionar la ventana del navegador.

    He encontrado algunas páginas donde se habla de este "bug" y no he encontrado ninguna manera de evitar este efecto tan raro.

    Si alguien sabe alguna solución bienvenido sea :)


  • avatar

    IceBeat#13 hace 221 días

    @nils no tenia ni idea sobre ese mal!, podrías pasarme algún enlace?


  • avatar

    nils#14 hace 221 días

    Sip... http://agarrate.net/blog

    Es un sitio que está en pruebas, pero se nota el efecto con IE6 y 7 al redimensionar el ancho de la ventana del navegador.

    Cuando carga la página, sea cual sea el ancho de la ventana lo carga bien, pero al cambiar el ancho de la ventana la parte de arriba se mueve.


  • avatar

    IceBeat#15 hace 220 días

    Pues vaya faena, no tenia ni idea que ocurriera eso :S.


  • avatar

    Emilio#16 hace 14 días

    Gracias, me ha servido mucho ;)

    Sobre el bug, no se si funcione pero tal vez si haces un Javascript que en onResize de la ventana cambie el CSS a otro valor y lo vuelva al correcto funcione. Digo, si al dibujarlo la primera vez lo hace bien...

    Saludos y gracias de nuevo!