Comunidad de diseño web y desarrollo en internet online

DIV/SCROLL

Citar            
MensajeEscrito el 02 Dic 2009 04:15 pm
Que tal ! saludos!! tengo una duda, estoy haciendo un diseño el cual ya tengo en un 90%, se me acaba de ocurrir agregar un Div PA para poner contenido extra, esto ya lo hice en un principio pense que al insertar el Div afectaria el diseño, pero no fue asi, en este foro me explicaron como hacerle, bueno ahora lo que quiero es que ese mismo Div PA se mantenga en su lugar aun cuando el usuario mueva el scroll del mouse o la barra de desplazamiento, como logro eso ?

Por erick_perez

8 de clabLevel



 

opera
Citar            
MensajeEscrito el 02 Dic 2009 04:29 pm
¿Un DIV PA en un div puesto por el ayuntamiento por aquello de que se queda en su sitio y para todos los demás es como si no estuviese?
Entonces, ¿un DIV PF sería uno puesto por Freddy (oppssss!) por aquello de que sólo ie6 :twisted: es capaz de moverlo de su sitio?
Procura no utilizar terminología inventada por cualquier programa.
:wink:

Bueno, ahora sobre tu consulta, checa este enlace realtivo a las distintas posiciones, creo que lo que andas buscando es el valor fixed.
Pero recuerda, que ie6 no lo entiende.

Saludos

Por DvillB

118 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Dic 2009 04:48 pm
O.k no mas terminologia de ese tipo, gracias Dvillb por la respuesta!

Por erick_perez

8 de clabLevel



 

opera
Citar            
MensajeEscrito el 02 Dic 2009 09:48 pm
De nada.
Si necesitas una estructura tipo para simular el fixed compatible con ie6, comenta.

Por DvillB

118 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Dic 2009 12:12 am
Gracias DvillB, he midificado la propiedad del div y nada de nada, lo que hace es que se pierde la estructura de todo el documento, este es mi div:

#fijo {
position:absolute; //lo he cambiado por fixed pero los demas div se me mueven
left:-14px;
top:256px;
width:320px;
height:240px;
z-index:2;
}


lo que necesito es que este div se quede fijo cuando el usuario mueva la barra de desplazamiento vertical o cuando mueva el scroll del mouse, lo he checado con JavaScript y es otra onda que peor aun no entiendo NADA, me pueden echar una manita porfavor?

Por erick_perez

8 de clabLevel



 

msie7
Citar            
MensajeEscrito el 04 Dic 2009 01:56 pm
Hola Erik
Sería bueno que pusieses un enlace a tu trabajo. Así podríamos ver qué está ocurriendo.
Porque es extraño lo que comentas, que la inclusión de una caja con posición fixed te descuadre todo. Digo que extraño porque al asignar ese valor, la caja sale del flujo y el resto se debería comportar como si no existiese.

Pero bueno, vamos a dejar la teoría para otro momento y nos centramos en una estructura simulando una caja fixed válida para ie6 también.
Voy a ir paso a paso, quizás encuentres que muchas cosas ya las conoces, pero voy a enfocarlo como algo didáctico y pensando en los más nóveles con css.

Lo primero y fundamental es crear la estructura del html, comenzando por un doctype para evitar sorpresas desagradables posteriores, un título y la declaración de la codificación:

Código :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es-es">
<head>
<title>DvillB en Cristalab: Fixed para ie6</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
<style type="text/css">
/*aquí iran los estilos*/
</style>
</head>
<body> 
  <div id="caja_fija">
  </div>
  <div id="contenedor_pagina">
  </div>
</body>
</html>

El contenedor "#caja_fija" será el que se mantenga en su lugar aunque se desplace la ventana.
En la caja "#contenedor_pagina" deberás meter toda tu página.
Por lo tanto de tu parte queda ajustar las propiedades/valores que le vamos a asignar en los estilos.

Vamos con la parte de css:
Lo primero es un pequeño reset, su función es más que conocida, así que no la explico:

Código :

* {margin: 0; padding: 0; border: 0; outline: none;}

A continuación declaramos las propiedades:

Código :

html, body {
  width:100%; 
  height:100%; 
  overflow:hidden; 
}

Es necesario declarar altura y anchura para que haya una referencia al definir el tamaño de la caja "#contenedor_pagina"
La regla "overflow: hidden;" forzará a que no salgan la barras de scroll propias de la ventana.

Siguiente paso, las propiedades del div donde alojarás todos tus contenidos "#contenedor_pagina":

Código :

#contenedor_pagina {
width:100%; 
height:100%;
overflow: auto;
position: relative;
} 

La anchura y alturas al 100% harán que ocupe toda la ventana del navegador (por eso antes hemos definido su tamaño, porque el porcentaje necesita un valor su cálculo) y con la regla "overflow: auto;" hará que aparezca el scroll cuando los contenidos sobrepasen el tamaño de la ventana. Pero esta es la gracia, lo que se desplazará será esta caja, no el "body" que permanecerá inmovil, siempre en la misma posición.
Por lo tanto, todo lo que sea hijo directo del "body" (que no esté metido en el div "#conteendor_pagina") no se moverá aunque se haga scroll (según las propiedades que se declaren).
El valor "relative" se lo asigno para que todo lo que alojes en ella tenga como referente esta caja. Aunque en puridad, como tiene las mismas medidas que el body pues eso...

Las propiedades de la caja que se va a mantener siempre visible:
"#caja_fija"
, simulando el fixed para que ie6 no la desplace al hacer scroll:

Código :

#caja_fija {
  position: absolute;
  width: 250px;
  height: 250px;
  border: 3px double #444;
  background: #435266;
  left: 50%;
  margin-left: -125px;
  top: 50%;
  margin-top: -125px;
  z-index: 10;
}

La psosición absoluta es la que hace que se mantenga en su sitio y no se desplace con el scroll porque su referente es el body, que recuerda que no se desplaza.
El resto de declaraciones son para colocarla en un punto específico del body (centrada en la vertical y en la horizontal de la ventana), asignarle tamaño y un fondo para que la identifiques.
Y el "z-index" para que se superponga en el eje-Z al contenido restante. Se conseguirá el mismo efecto si en vez de ponerla al inicio del html, la colocamos después de cerrar "#contenedor_pagina"

Así que nuestro archivo html final, con una caja siempre en el mismo lugar quedaría así, añadiendo un poco de "lorem ipsum" para ver el efecto:

Código :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es-es">
<head>
<title>DvillB en Cristalab: Fixed para ie6</title>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
<style type="text/css">
* {margin: 0; padding: 0; border: 0; outline: none;}
html, body {
  width:100%; 
  height:100%; 
  overflow:hidden; 
}
#contenedor_pagina {
  width:100%; 
  height:100%;
  overflow: auto;
  position: relative;
} 
#caja_fija {
  position: absolute;
  width: 250px;
  height: 250px;
  background: #435266;
  left: 50%;
  margin-left: -125px;
  top: 50%;
  margin-top: -125px;
  z-index: 10;
}
#contenedor_pagina p {
  font-size: 1.2em;
  margin-bottom: 2em;
}
</style>
</head>
<body> 
  <div id="caja_fija">
      <p>Caja fija</p>
  </div>
  <div id="contenedor_pagina">
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
      <p>Lorem ipsum dolor sit amet consectetuer mauris vel tortor consectetuer et. Ut Phasellus neque faucibus consectetuer Nullam ipsum Aliquam nibh Suspendisse Vestibulum.</p>
  </div>
</body>
</html>

Ahora sólo tienes que adaptarlo a tus necesidades.
Ya comentarás.

Saludos

Por DvillB

118 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Dic 2009 10:03 pm
Listo ! tan sencillo como poner :

position: absolute;
position: fixed;

Las dos propiedades juntas, cualquier explorador lo soporta! Gracias a todos por su ayuda!

Por erick_perez

8 de clabLevel



 

chrome
Citar            
MensajeEscrito el 07 Mar 2013 10:28 pm
hola!
estoy tratando de hacer una barra con menu que de inicio se ubique al centro vertical de la pantalla y al correr el scroll se ubique en el limete superior y no desaparezca..
he visto ese efecto pero no sé cuál sea el tecnisismo para ese efecto, alguien sabe??

Por raider33

55 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.