2010-11-21 16 views
47

¿Cómo hago un DIV siempre flotan en la esquina superior derecha de la pantalla, de modo que incluso cuando desplazar la página hacia abajo, el DIV todavía aparece en la misma ubicación fija? Gracias.¿Cómo hacer que un DIV siempre flote en la pantalla en la esquina superior derecha?

+0

consulte este enlace, creo que desea lo contrario del pie de página flotante pegajoso.http: //stackoverflow.com/questions/146659/how-do-i-get-a-floating-footer- to-stick-to-the-bottom-of-the-viewport-in-ie-6 – kobe

Respuesta

69

Uso position: fixed y anclarlo a los top y right caras de la página:

#fixed-div { 
    position: fixed; 
    top: 1em; 
    right: 1em; 
} 

IE6 no soporta position: fixed, sin embargo. Si necesita esta funcionalidad en IE6, this purely-CSS solution parece hacer el truco. Necesitará un contenedor <div> para contener algunos de los estilos para que funcione, como se ve en el stylesheet.

+0

Gracias, pero necesito una solución multiplataforma, ya sea que involucre solo CSS o una mezcla de CSS y Javascript. – akanevsky

+0

@akavsky ¿estás bien con la función de jQuery $ (ventana) .scroll (function() {} ); entonces podemos colocarlo fácilmente en la .... esquina derecha usando jquerys animate – kobe

+0

Para comentar sobre la posición: no funciona en IE, http://www.howtocreate.co.uk/fixedPosition.html es la solución para esto . – digitalfoo

11

Uso position:fixed, como se dijo anteriormente, Internet Explorer 6 no reconoce position:fixed, pero con un poco de magia css puede obtener IE6 comportarse:

html, body { 
    height: 100%; 
    overflow:auto; 
} 
body #fixedElement { 
    position:fixed !important; 
    position: absolute; /*ie6 */ 
    bottom: 0; 
} 

La bandera !important lo hace por lo que no tiene que utilizar un comentario condicional para IE. Esto tendrá #fixedElement uso position:fixed en todos los navegadores, pero IE, y en IE, position:absolute se llevará a efecto con bottom:0. Esto simulará position:fixed para IE6

+1

También puede usar '* html body #fixedElement {position: absolute; } 'después de esa regla. – BoltClock

+0

@BoltClock Buen punto. – Alex

+0

Hicimos esto en Chrome, pero la 2ª posición sobrescribe el 'fijo', por lo que cambiaría el orden de esos dos. Eso hará que esto funcione – patrick

Cuestiones relacionadas