Comunidad de diseño web y desarrollo en internet online

cómo organizar divs dinámicos?

Citar            
MensajeEscrito el 23 Mar 2008 02:58 am
...a ver si puedo explicarme, vengo luchando con esto y ya tengo el cerebro medio fundido... -.-

tengo que hacer el maquetado de una página de ofertas, cuyo contenido se carga dinámicamente de una base de datos.
cada oferta sale en una columna, y por 'linea' deben salir como máximo 3, pero pueden ser 2 o 1, y en todos casos deben estar centrados en la pagina...
mmme doy a entender?

primeramente pensé en hacer la tipica distribucion de 3 columnas con float, pero requeriría generar una clase diferente para cada opcion (1, 2 o 3 columnas), e incluirlo segun corresponda de alguna forma en el php... que no manejo yo.

tuve un destello de esperanza cuando al div le puse display:inline-block, que en Opera funcionó *casi* bien (no entraban 3 en linea en el espacio que deberían), pero el firefox y explorer ni se enteraron.... T_T

...bueno, llevo un tiempo aprendiendo css a los golpes, y ya no sé que otra vuelta darle a éste asunto, asique humildemente recurro a uds -.-

(plz, no me manden a buscar en google -.-)

espero k se haya entendido... ^^'

Por angel_eskarlata

68 de clabLevel



Genero:Femenino  

Baires City

opera
Citar            
MensajeEscrito el 25 Mar 2008 02:34 pm
Se me ocurre, aunque no lo he probado, que pongas al contenedor padre de las columnas, un text-align:center; y a cada columna un display:inline; pruebalo y me dices si funciona.

Suerte y un saludo.

Por akhasis

75 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Mar 2008 03:00 pm
gracias por responder akhasis, pero ya lo he intentado y lo único que logro es que las colunas se alarguen al ancho del div padre (y no entiendo por qué hace esto tampoco O_o), una debajo de la otra (que, btw, queda muy lindo, pero no es lo que quiere el cliente vio? :P)

Por angel_eskarlata

68 de clabLevel



Genero:Femenino  

Baires City

opera
Citar            
MensajeEscrito el 25 Mar 2008 03:09 pm
puedes poner una web dd salga algo como lo q quieres, q la verdad no me hago a la idea d lo q quieres hacer

Por sk8erboi

78 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 25 Mar 2008 09:35 pm
mmm... la verdad no sé de ninguna web que haga algo puntual asi, en todo caso tampoco es una diferencia visual

lo que necesito hacer es una página cuyo contenido se cargará dinámicamente desde una base de datos.
esos contenidos serán bloques de texto dentro de un div cuadrado (llamemosle "div ofertas") y yo tengo que lograr que en la web aparezcan de a 3 bloques alineados, y si son más que el 4to aparezca abajo de los 3 primeros, y siempre centrado: si es 1 solo bloque de texto debe ser centrado, si son 2, o 3, también.

esto normalmente lo haría con 1 div padre, 3 div hijos y aplicandoles las propiedades float:left y float:right, etc, "lo típico"...

sin embargo, no puedo hacerlo porque aquí la cantidad de bloques de texto es dinámica, pueden ser 1 o 5, o más.
lo que no sé es cómo lograr que 3 bloques queden siempre alineados y centrados

... me expliqué mejor? =/

Por angel_eskarlata

68 de clabLevel



Genero:Femenino  

Baires City

opera
Citar            
MensajeEscrito el 26 Mar 2008 01:05 am
Pues tal vez te he entendido mal pero yo he hecho algo parecido en algunas galerías de imágenes. Lo que yo hago normalmente es que todos los div hijos son de la misma clase y a todos los agrego un float:left, luego ellos se van apilando hacia la izquierda y cuando sobrepasan las dimensiones del div padre empiezan a apilarse en la siguiente linea y así sucesivamente.

Para que funcione correctamente es necesario tener mucho cuidado con las dimensiones de los divs, porque hay ocasiones en las que el maligno no saben sumar ni restar correctamente y en lugar de mostrar filas de tres columnas solo muestra filas de dos, así que hay que jugar con cuidado con los márgenes y el padding para que queden exactamente 3 divs en cada fila.

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 26 Mar 2008 05:56 pm
Odin: muchas gracias, con tu tip logré que se agreguen correctamente por línea
pero mi problema sigue siendo la alineación: necesito que asi sea 1 columna o 2, siempre queden centradas en el div padre :(
al aparecer 3 columnas no hay problema porque ocupan el ancho completo
pero con el float:left se juntan hacia la izquierda (lógicamente) y yo requiero que sean centradas :(
gracias igual, me ha sido de ayuda :)

Por angel_eskarlata

68 de clabLevel



Genero:Femenino  

Baires City

opera
Citar            
MensajeEscrito el 27 Mar 2008 08:41 am
Se supone que tú siempre sabes cuantas columnas va a haber? En ese caso, supongamos que cada columna tiene un ancho de 1/3 de la página, y que las tres columnas están contenidas en un contenedor común, y flotadas a la izquierda. Podríamos darle estilo al padre, centrándolo en la página y dándole un ancho dependiente del número de columnas:

- Para 1 columna, el ancho del contenedor padre es del 33% de la página
- Para 2 columnas, el ancho del contenedor padre es del 66% de la página
- Para 3 columnas, el ancho del contenedor padre es del 99% de la página

Al estar centrado en la página y agrupar las columnas, éstas estarían también siempre en el centro.

Se me ocurren también maneras de hacerlo sin depender de un contenedor padre, pero todas requieren crear una clase para cada número diferente de columnas que se vaya a mostrar, por lo que hay que conocer dicho número.

Espero que te sirva, un saludo.

Por akhasis

75 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Mar 2008 03:50 pm
claro akhasis, el problema, como había dicho en un principio, es que las columnas llegan de forma dinámica, es decir que nunca puedo saber el numero que serán
pueden ser 1, 2, 3, o más (que tendrían que aparecer abajo si son más de 3) y siempre centradas -.-
bueno, igual ya lo entregué y mi "supervisor" arreglará lo que haga falta (él es pro, yo soy n00b :P)
de todos modos, cuando él me diga cómo lo solucionó, pondré la respuesta aqui ;)
gracias a todos!

Por angel_eskarlata

68 de clabLevel



Genero:Femenino  

Baires City

opera
Citar            
MensajeEscrito el 28 Mar 2008 03:52 am
bien, esto me supera, mi profesor no supo como solucionarlo tampoco U_U
me dió todas las posibles soluciones que yo ya había intentado y ahora nos quedamos los dos con la duda xD
imaginense que para que me diga "y bueno, de últimas lo ponés todo en una tabla y listo" O_o'.... (sacrilegio!)
en fin... me dijo que iba a chekear algunos manuales de css que tenía olvidados, asi que veremos que sucede ^^
una vez más: gracias igual a los que se interesaron ^^

Por angel_eskarlata

68 de clabLevel



Genero:Femenino  

Baires City

opera
Citar            
MensajeEscrito el 24 Jul 2009 08:24 pm
Esta facil Angel.... cuando encuentras como :wink: , yo lo sufri igual, pero nada mas le pones margin:0 auto; al div padre, suerte!

Por Wendyliona

0 de clabLevel



 

firefox

 

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