Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] libreria para elementos flotantes

Estas en el tema de libreria para elementos flotantes en el foro de Javascript en Foros del Web. Buenas tardes a todos. Mi problema(uno de ellos) es que tengo una web donde hay muchos divs que siempre tienen el mismo ancho pero que ...
  #1 (permalink)  
Antiguo 28/09/2013, 13:21
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 16 años, 7 meses
Puntos: 14
libreria para elementos flotantes

Buenas tardes a todos.

Mi problema(uno de ellos) es que tengo una web donde hay muchos divs que siempre tienen el mismo ancho pero que la altura varía. Necesito que vayan rellenando de arriba hacia abajo así que les he puesto la propiedad float:left.

Bueno parece que la cosa va bien hasta que empiezo a observar que en algunas ocasiones dejan unos huecos entre ellos enormes sin rellenar. es decir en vez de auajustarse pues se saltan una "linea" porque el ultimo de los elementos es muy pequeño y puede meter dos etc..

Probadlo vosotros mismos
Código HTML:
Ver original
  1. <div id="padre">
  2. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TTEXTO EXTO TEXTO</div>
  3. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO</div>
  4. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO</div>
  5. <div style="float:left; width:100px;">TEXTOTEXTO  TEXTO TEXTTEXTO O TEXTO</div>
  6. <div style="float:left; width:100px;">TEXTEXTO TO TEXTO TEXTO TEXTO TEXTO</div>
  7. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
  8. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO</div>
  9. <div style="float:left; width:100px;">TEXTO TEXTO TEXTEXTO TO TEXTO TEXTO</div>
  10. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO  TEXTO</div>
  11. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO</div>
  12. <div style="float:left; width:100px;">TETO TEXTO TEXTO TEXTO TEXTO</div>
  13. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO</div>
  14. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
  15. <div style="float:left; width:100px;">TEXTO TEXTOTEXTO TEXTO</div>
  16. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO</div>
  17. <div style="float:left; width:100px;">TEXTO TETEXTO XTTEXTO O TEXTO TEXTO TEXTO</div>
  18. <div style="float:left; width:100px;">TEXTO TEXTO</div>
  19. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
  20. <div style="float:left; width:100px;">TEXTO TEXTO TEXO TEXTTEXTO O TEXTO</div>
  21. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO</div>
  22. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
  23. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO</div>
  24. <div style="float:left; width:100px;">TEXTO  TEXTO</div>
  25. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
  26. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
  27. <div style="float:left; width:100px;">TEXTO TEXTO </div>
  28. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO</div>
  29. <div style="float:left; width:100px;"> TEXTO TEXTO TEXTO</div>
  30. <div style="float:left; width:100px;">TEXTO TEXTO TETEXTO TEXTO XTO TEXTO TEXTO</div>
  31. <div style="float:left; width:100px;">TEXTO TEXTO TEXTOTEXTO</div>
  32. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
  33. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO</div>
  34. <div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
  35. </div>

Acabo de montar el codigo "online" así que no se si funcionará pero es la idea lo que cuenta.

Lei hace ya mucho tiempo sobre una libreria que hacia que todos quedaran perfectamente cuadrados, alguien sabe cual es o si conoce alguna forma de solventarlo para que todo quede bonito bonito.

Gracias y buenas noches!!!!!
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios
  #2 (permalink)  
Antiguo 28/09/2013, 13:31
Avatar de djsos  
Fecha de Ingreso: septiembre-2007
Ubicación: Madrid-España
Mensajes: 374
Antigüedad: 16 años, 7 meses
Puntos: 14
Respuesta: libreria para elementos flotantes

Viva el XXX, bueno pues estaba mirando una web de videos X para un cliente y vi como los resultados hacían lo que yo esta buscando, investigue un poco y he descubierto esta librería "Masonry" http://masonry.desandro.com/
Hace lo que necesito lo he probado con código basura y parece que funciona.

Así que gracias a todos por participar.

Un Saludo!!
__________________
Es de bien nacidos ser agradecidos.
Desarrollo de software a medida | TPV Comercios
  #3 (permalink)  
Antiguo 28/09/2013, 13:59
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: libreria para elementos flotantes

Te había entendido que querías algo así:
Código:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style>
#padre div{ border:1px dashed #000; margin:2px;}
</style>
</head>
<body>
<div id="padre">
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TTEXTO EXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTOTEXTO  TEXTO TEXTTEXTO O TEXTO</div>
<div style="float:left; width:100px;">TEXTEXTO TO TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTEXTO TO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO  TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TETO TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTOTEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TETEXTO XTTEXTO O TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXO TEXTTEXTO O TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO  TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO </div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;"> TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TETEXTO TEXTO XTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTOTEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO TEXTO</div>
<div style="float:left; width:100px;">TEXTO TEXTO TEXTO TEXTO TEXTO</div>
</div>
<script type="text/javascript">
if (!Array.prototype.forEach){
    Array.prototype.forEach = function(fun){
        if (typeof fun != "function") throw new TypeError();
          for (var i = 0,l=this.length; i < l; i++) {
               if (i in this) fun.call(arguments[1], this[i], i);
          }
          return this;
    }
}
var mx=0;
try{
	var els=Array.prototype.slice.call(document.getElementById('padre').getElementsByTagName('div'));
}catch(e){
	var tmpel=document.getElementById('padre').getElementsByTagName('div'),i=0,l=tmpel.length,els=[];for(;i<l;i++){els[i]=tmpel[i]};
}
els.forEach(function(el){mx=Math.max(el.offsetHeight,mx);});
els.forEach(function(el){el.style.height=mx+'px';});
</script>
</body>
</html>

Etiquetas: elementos, flotantes, funcion, libreria
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 18:19.