Foros del Web » Creando para Internet » CSS »

Cómo hacer responsive algo absoluto

Estas en el tema de Cómo hacer responsive algo absoluto en el foro de CSS en Foros del Web. Hola, mi duda es cuando tengo un div con posición absoluta y que se encuentra centrado de la siguiente manera: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código CSS: Ver ...
  #1 (permalink)  
Antiguo 03/06/2013, 13:45
 
Fecha de Ingreso: junio-2011
Mensajes: 478
Antigüedad: 12 años, 10 meses
Puntos: 13
Pregunta Cómo hacer responsive algo absoluto

Hola, mi duda es cuando tengo un div con posición absoluta y que se encuentra centrado de la siguiente manera:

Código CSS:
Ver original
  1. width: 960px;
  2. margin-left: -480px;
  3. left: 50%;
  4. position: absolute;

Cómo hago para hacerlo responsive? Es decir, al achicar la ventana del navegador no encuentro la forma de que se vaya adaptando. Conozco las media-queries pero usándolas tampoco me doy cuenta de cómo hacerlo.
Quizás deba centrarlo de otra forma al div, pero si o si tiene que tener posición absoluta.

Muchas gracias! :)
  #2 (permalink)  
Antiguo 03/06/2013, 15:13
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Cómo hacer responsive algo absoluto

Cita:
Iniciado por rapuig Ver Mensaje
Quizás deba centrarlo de otra forma al div, pero si o si tiene que tener posición absoluta.
¿Si o si por qué? Mucha gente usa la posición absoluta cuando no debería. Y estos son los problemas que ocurren. Con el afán de ayudar, estaría bien que expusieras el porqué de necesitar una posición absoluta. Porque parece un contenedor, por la medida y eso. Y para la maquetación en general es una muy mala práctica usar posiciones absolutas.
Estaría bien que lo explicaras a ver si, con respecto a la vez que perdón, se puede hacer algo más robusto en vez de arreglar cosas inestables.

Iba a poner una respuesta con una solución, pero casi que prefiero saber que realmente no queda otra que usar posiciones absolutas.
  #3 (permalink)  
Antiguo 03/06/2013, 16:50
 
Fecha de Ingreso: junio-2011
Mensajes: 478
Antigüedad: 12 años, 10 meses
Puntos: 13
Respuesta: Cómo hacer responsive algo absoluto

Gracias por responder pzin.

Es porque se encuentra sobre un div, obviamente con posición relativa, el cual es un slider de imgs.
  #4 (permalink)  
Antiguo 04/06/2013, 04:17
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Cómo hacer responsive algo absoluto

Pues mucho no explicas de porqué tiene que ser si o si de esa forma.

Poer bueno, si quieres algo más estable y más fácil de mantener de lo que tienes, yo haría algo así:

Código HTML:
Ver original
  1. <div id="contenedor">
  2.   <div id="caja"></div>
  3. </div>

Código CSS:
Ver original
  1. div#contenedor {
  2.   position: absolute;
  3.   left: 50%
  4. }
  5.  
  6. div#caja {
  7.   position: relative;
  8.   left: -50%;
  9.   width: 960px;
  10. }

La única diferencia es que se centraría de forma automática.

Pero no me queda lo del tema responsivo. Con esto al aplicarle media-queries puedes ir cambiando solo el valor del ancho de #caja y se queda centrado siempre.

Y ahora volviendo con las dudas.

Si ese elemento lo tienes dentro de otro, ¿por qué no aplicas una medida porcentual? Así consigues tener un diseño líquido. Yo creo que debe de haber una mejor solución, pero falta información. Explícate un poco más a ver.
  #5 (permalink)  
Antiguo 04/06/2013, 12:10
 
Fecha de Ingreso: junio-2011
Mensajes: 478
Antigüedad: 12 años, 10 meses
Puntos: 13
Respuesta: Cómo hacer responsive algo absoluto

Cita:
Iniciado por pzin Ver Mensaje
Si ese elemento lo tienes dentro de otro, ¿por qué no aplicas una medida porcentual? Así consigues tener un diseño líquido. Yo creo que debe de haber una mejor solución, pero falta información. Explícate un poco más a ver.
Olvide decir que el div absoluto tiene width 100% y max-width 960px.
No se muy bien cómo explicarme jeje es decir, la web tiene que ser así, tengo que poner un div sobre otro y la manera correcta para esto no es poner el de abajo relativo y el de arriba absoluto?

Si te parece te mando el link por privado para que no se indexe por acá así entiendes mejor, sino todo bien.

Gracias nuevamente.
  #6 (permalink)  
Antiguo 04/06/2013, 12:26
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Cómo hacer responsive algo absoluto

Vi el enlace. Está chulo el sitio.

Y si, la forma correcta de hacerlo sería sin usar posiciones absolutas.

Puedes crear un contenedor que ocupe todo el ancho, como ya tienes en realidad. En vez de poner una imagen, pones esa imagen como fondo. Y en ese mismo contenedor pones el buscador.

Código HTML:
Ver original
  1.   <div id="buscador"></div>

Luego el CSS sería algo como esto:

Código CSS:
Ver original
  1. section {
  2.   height: 500px; /* O cuanto necesites */
  3.   background-image: url(fondo.png);
  4.   background-size: cover; /* Ayuda a que la imagen se ajuste */
  5. }
  6.  
  7. div#buscador {
  8.   width: 960px;
  9.   max-width: 95%; /* Por dejar un margen a los lados */
  10.   margin: 0 auto;
  11. }

Supongo que la idea es más o menos clara. Así se adaptará perfectamente, ya que sigue manteniendo una estructura fluída con el ancho máximo de 95%.

El problema que tienes ahora de porqué lo tienes que poner con una posición absoluta, es porque estás "creando" una imagen de fondo a partir de un elemento que es una imagen.

Etiquetas: responsive
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 15:17.