Foros del Web » Creando para Internet » CSS »

Problema con position:fixed;

Estas en el tema de Problema con position:fixed; en el foro de CSS en Foros del Web. Buenas, el caso es que estoy programando una página y he hecho una barra horizontal en el top de la página con el atributo position:fixed; ...
  #1 (permalink)  
Antiguo 30/11/2011, 08:46
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 13
Problema con position:fixed;

Buenas, el caso es que estoy programando una página y he hecho una barra horizontal en el top de la página con el atributo position:fixed; para que se mantenga fija.
La anchura de esta barra es de 1120px centrada (y un fondo width:100% con los mismos atributos.) y al poseer el atributo position:fixed; en caso de abrir la página a una resolución menor de 1120px resulta imposible acceder al resto de la barra, que es la parte mas importante, donde se encuentra el registro y el login.

Mi pregunta es:

¿Existe alguna forma de evitar la fijación horizontal? En caso de que no, ¿qué me recomendáis hacer?

Gracias, un saludo.

Última edición por BanNsS1; 30/11/2011 a las 09:00
  #2 (permalink)  
Antiguo 30/11/2011, 09:20
Avatar de Raziel_Ravenheart  
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Problema con position:fixed;

Pues he tenido el mismo problema, y además te comento que llevo como 3 meses estudiando javascript y css, aunque le he dedicado más tiempo a javascript, por ahí también alguno de mis momentos a css. En algunas ocasiones es necesario aplicar un estilo fluido o líquido, a todo lo que hagas, es decir usando porcentajes y em, pero a veces esto no ayuda, ya que he probado un sitio que estoy haciendo, y me toca reducir el zoom de la página, para que se acomode.

En estos dias estuve pensando, cual sería la mejor solución y para alguien como yo que ya se da su mañas con javascript, anoche deduje que una buena solución era aplicar estilos desde javascript, despues de detectar la resolución de la pantalla, pero supongo que esto no es algo muy fácil para quienes no saben de javascript.

Algunos utilizan el atributo zoom de css, y la verdad no entiendo como hacerlo funcionar para este tipo de problemas, aunque supongo que si todos los navegadores, incluso antiguos la soportaran, se podría modificar el tamaño de todo el documento aplicándoselo diréctamente al body desde javascript.

Por otro lado, acabo de leer que se detecta la resolución con javascript, y dependiendo de la resolución aplicas un css u otro, obviamente, de dos o tres ficheros css que ya tengas preparados.

La verdad, no conozco un método puro desde javascript, y trataré de solucionar pronto, pero dudo mucho que encuentre una solución rápida a menos que un experto nos colabore. Mira lo que encontré en cristalab.

cambiar propiedades web segun resolucion pantalla con css
  #3 (permalink)  
Antiguo 30/11/2011, 09:21
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con position:fixed;

con esto en resoluciones menores se te va a generar scroll horizontal para poder acceder a toda esa capa que tiene fixed, pero en particular no me parece muy atractivo, creo que sería mejor usar porcentajes. Probalo

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>fixed con scroll</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <style type="text/css">
  8. /*<![CDATA[*/
  9.  
  10. html, body, div {
  11. padding: 0;
  12. border: none;
  13. margin: 0;
  14. }
  15.  
  16. #contenedor {
  17. position: relative;
  18. width: 1120px;
  19. height: auto;
  20. margin: 0 auto;
  21. }
  22.  
  23. #tope {
  24. height: 50px;
  25. position: fixed;
  26. width: 1120px;
  27. background-color: #151515;
  28. color: #FFF;
  29. }
  30.  
  31. /*]]>*/
  32. </head>
  33. <div id="contenedor">
  34. <div id="tope">
  35. sssss
  36. </div>
  37. xxxxx
  38. <br />xxxxx
  39. <br />xxxxx
  40. <br />xxxxx
  41. <br />xxxxx
  42. <br />xxxxx
  43. <br />xxxxx
  44. <br />xxxxx
  45. <br />xxxxx
  46. <br />xxxxx
  47. <br />xxxxx
  48. <br />xxxxx
  49. <br />xxxxx
  50. <br />xxxxx
  51. <br />xxxxx
  52. <br />xxxxx
  53. <br />xxxxx
  54. <br />xxxxx
  55. <br />xxxxx
  56. <br />xxxxx
  57. <br />xxxxx
  58. <br />xxxxx
  59. <br />xxxxx
  60. <br />xxxxx
  61. <br />xxxxx
  62. <br />xxxxx
  63. <br />xxxxx
  64. <br />xxxxx
  65. <br />xxxxx
  66. <br />xxxxx
  67. <br />xxxxx
  68. <br />xxxxx
  69. <br />xxxxx
  70. <br />xxxxx
  71. <br />xxxxx
  72. <br />xxxxx
  73. <br />xxxxx
  74. <br />xxxxx
  75. <br />xxxxx
  76. <br />xxxxx
  77. <br />xxxxx
  78. <br />xxxxx
  79. <br />
  80. </div>
  81. </body>
  82. </html>
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 30/11/2011, 09:27
Avatar de Raziel_Ravenheart  
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Problema con position:fixed;

Cita:
Por otro lado, acabo de leer que se detecta la resolución con javascript, y dependiendo de la resolución aplicas un css u otro, obviamente, de dos o tres ficheros css que ya tengas preparados.
A diferencia de mi solución, no hay que aplicar css desde javascript, si no que considero esto una mejor forma, ya que se aplica el css desde un archivo externo ya preparado

Cita:
La verdad, no conozco un método puro desde javascript, y trataré de solucionar pronto, pero dudo mucho que encuentre una solución rápida a menos que un experto nos colabore. Mira lo que encontré en cristalab.
Corrijo, en realidad quise decir que no conozco un método puro desde CSS, obvio desde javascript puedes aplicar todo el css, pero no es una forma recomendable, a menos que obligatoriamente tengas que hacerlo.
  #5 (permalink)  
Antiguo 30/11/2011, 09:31
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 13
Respuesta: Problema con position:fixed;

Sería práctico utilizar porcentajes pero en mi caso me resulta imposible ya que el login lo hice en jQuery y el resultado, ya sea erroneo o no se muestra sin recargar la página y por lo tanto no todos los resultados de la introducción de datos tienen el mismo resultado, y si se cambia de idioma también varia.

Voy a mirar ese link que habéis dejado.
Gracias.


Edito: En cuanto al link que dejaste si no viese otra solución utilizaría esto: en caso de que la ventana sea menos ancha de 1120 en vez de position fixed, absolute y mejor eso que nada.

Cita:
//Creo que era
var ancho= Screen.width;
var alto= Screen.height;
//y entonces
if(ancho<1024){
//Mwahaha, document write111!!11
document.wirte("<link type='text/css' rel='stylesheet' href='css4loosers.css' />");
}
  #6 (permalink)  
Antiguo 30/11/2011, 09:45
Avatar de Raziel_Ravenheart  
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Problema con position:fixed;

Pues realmente en ese enlace dicen lo mismo, pero ya que mencionas jQuery, creeme, siempre debe haber una forma para arreglar estos problemas y más utilizando una librería tan poderosa como jQuery.

También como te dije, llevo más tiempo dedicado al javascript, lo que te quiero decir, es que al saber que usas jQuery, se me hace extraño que no hayas podido resolver esto, y te lo digo por que yo no esttoy de acuerdo con el uso de librerias o frameworks mientras no conozcas bn como se comportan todos los elementos, pero te puedo asegurar, que la solución está por ahí, ya que yo estoy estudiando el código de jQuery, por que me ha interesado.

Te aclaro, que no recomiende el uso de jQuery mientras aprendes javascript, no significa que lo uses es solo una opinión personal, en cuanto a tu problema, no necesariamente debes estresarte tanto, ya que si estás trabajando jQuery, de nuevo te digo, debería ser más sencillo que si lo hicieras con javascript puro, te dejo otro enlace:

Detectar resolución de pantalla y aplicar estilo con jQuery

El procedimiento sería el siguiente:
1. con window.onload, inicias una función de jQuery que detecte la resolución
2. aplicas el estilo css, desde jQuery, que según he visto, es solo llamar el elemento con $('body').algunaFuncionParaAplicarEstilos(), y listo

3. Si el usuario cambia de idioma, recargas la página, yo lo haría con un window.location desde javascript puto, pero antes pasaría por la url el idioma es decir algo como:
http://www.mipagina.com/lang=en
, y de nuevo lo detectaría con el window.onload, y después haría el resto.

Obvio, desde el inicio window.onload, va a detectar que tipo de idioma se está utilizando, pero cuando se accede a esta página inicialmente, esta validación no se ejecutaría por que no hay ningun valor de lenguaje en la url.

Si lo aplicas de otro modo, espero que esto le ayude a alguien más, por que de nuevo repito, yo que solo uso javascript puro, ya se como hacerlo, cualquier que utilice jQuery la tendría muchísimo más fácil.

Saludos
3.
  #7 (permalink)  
Antiguo 30/11/2011, 09:55
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 13
Respuesta: Problema con position:fixed;

Gracias por tu ayuda pero preferiría antes de darme por vencido encontrar algo sin tener que trabajar con resoluciones:

Encontré esto:
http://www.rickyh.co.uk/css-position-x-and-position-y/

Demo:
http://demo.rickyh.co.uk/css-position-x-and-position-y/


Ahora os cuento qué tal.
  #8 (permalink)  
Antiguo 30/11/2011, 10:21
Avatar de Raziel_Ravenheart  
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Problema con position:fixed;

Cita:
Iniciado por BanNsS1 Ver Mensaje
Gracias por tu ayuda pero preferiría antes de darme por vencido encontrar algo sin tener que trabajar con resoluciones:

Encontré esto:
http://www.rickyh.co.uk/css-position-x-and-position-y/

Demo:
http://demo.rickyh.co.uk/css-position-x-and-position-y/


Ahora os cuento qué tal.
AAAAAAHHHHHH ya te entendíiiiii, jejej, si quieres que todo te quede como lo programaste, bn bn...

Ps impleméntalo y si puedes darnos un enlace a la página, para ver como te quedó sería excelente... de todos modos yo no se mucho de diseño y me toca estudiar y aprender de gente que sepa...

muy bueno por cierto
  #9 (permalink)  
Antiguo 30/11/2011, 10:34
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con position:fixed;

Cita:
Iniciado por BanNsS1 Ver Mensaje
Gracias por tu ayuda pero preferiría antes de darme por vencido encontrar algo sin tener que trabajar con resoluciones:

Encontré esto:
http://www.rickyh.co.uk/css-position-x-and-position-y/

Demo:
http://demo.rickyh.co.uk/css-position-x-and-position-y/


Ahora os cuento qué tal.
Se te ocurrió probar el código que te puse de ejemplo?
ahi tu capa fixed sigue funcionando como tal, y en resoluciones menores, 1024x768 por ejemplo, se te genera el scroll necesario para acceder al contenido que queda oculto, en resoluciones mayores ves los 1120px completos.

no sé porque tantas vueltas

__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #10 (permalink)  
Antiguo 30/11/2011, 10:36
 
Fecha de Ingreso: junio-2009
Mensajes: 101
Antigüedad: 14 años, 10 meses
Puntos: 13
Respuesta: Problema con position:fixed;

Os dejo aquí la web. Por ahora está todo junto pero lo dividiré en cuanto termine las funciones básicas.

PD: Todavía no lo he implementado.

www.gather.rconect.net


Cita:
Iniciado por emprear Ver Mensaje
Se te ocurrió probar el código que te puse de ejemplo?
ahi tu capa fixed sigue funcionando como tal, y en resoluciones menores, 1024x768 por ejemplo, se te genera el scroll necesario para acceder al contenido que queda oculto, en resoluciones mayores ves los 1120px completos.

no sé porque tantas vueltas

No se me ocurrió probarlo porque no hace lo que yo quiero. Como mucho se podría crear un scroll y no me interesa.
Gracias de todas formas.

Última edición por BanNsS1; 30/11/2011 a las 10:42
  #11 (permalink)  
Antiguo 30/11/2011, 11:03
Avatar de Raziel_Ravenheart  
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Problema con position:fixed;

Aunque también me queda la duda.. esperaré para ver el resultado y así poderte decir una mejor manera de hacerlo o si la solución de emprear se puede implementar mejor, para que no te sigas complicando.

Te lo digo por experiencia, por que cosas que he hecho antes, buscando una solución, se pudo haber hecho de otro modo, más sencillo, o por lo menos mejor estructurado.

Como dije, esperaré para ver la solución que le diste, por que no solo sucede cuando se tienen una resolución menor, si no cuando se redimensiona la ventana.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:17.