2011-06-30 15 views
8

Quiero mostrar una página de miniaturas. Las miniaturas son imágenes de obras de arte cargadas por el usuario. Cada imagen tiene un ancho limitado, pero no una altura limitada, esto es para mostrar la imagen completa sin ningún recorte.¿Cómo creo dinámicamente un collage (cuadrícula sin huecos) de imágenes, donde las imágenes tienen diferentes alturas?

Quiero que las imágenes se toquen entre sí sin espacios intermedios. El número de columnas no es fijo: si amplío o cambio el tamaño de la página, las imágenes deben fluir al número correcto de columnas.

float:left 

es ALMOST, lo que quiero. Excepto cuando hay imágenes de altura en la página me sale este aspecto con huecos:

enter image description here

¿Cómo eliminar las brechas?

+0

Se podría definir 4 mesas diferentes (cada uno con una columna) en una fila :) –

+0

Para obtener el aspecto que desea, usted va a tener que utilizar el posicionamiento absoluto. Puedes escribir tu propio script o usar un plugin como el sugerido. – jchavannes

Respuesta

6

Si quieres hacer esto en CSS solo debes crear divs para cada columna, y flotar esas columnas (pero estropea el orden de las imágenes).

Alternativamente, puede usar el plugin jquery como this one.

+0

gracias. el plugin de mampostería hace lo que quiero. Excepto que hubiera preferido que la orden original fuera de izquierda a derecha en cada fila. La albañilería hace esto para la primera fila, pero para la segunda fila parece ajustarse arbitrariamente a la siguiente imagen hasta el espacio más grande que puede encontrar. Aunque, en general, todavía tienes el orden para ser los primeros "cerca" de la parte superior, pero no necesariamente de izquierda a derecha. – Homan

+0

Una posibilidad para evitar arruinar las imágenes es tener un contador, por cada cuarta imagen que publique en el div determinado. Así que tienes este contador y una declaración while en 1,2,3 y 4 ... cuando el número llega a 1, se agrega a div 1, y así sucesivamente, y cuando llega a 4, simplemente se agrega el número de nuevo a 0 :) ¡Problema resuelto! –

9

No estoy seguro de cuán elegante necesita su CSS, pero una buena opción, no obstante. Puede usar masonry.js para ayudarlo.

http://css-tricks.com/seamless-responsive-photo-grid/

+0

¡Esta debería ser la respuesta elegida! – vsync

+0

Sé que usted respondió esto hace un tiempo, pero ¿alguna vez descubrió una forma de mostrar las imágenes de izquierda a derecha en lugar de arriba hacia abajo? – SISYN

Cuestiones relacionadas