JMiur [E]

Cuando coloco cosas una al lado de la otra, estas se acomodan como pueden; si tienen diferentes alturas, quedarán espacios vacios, ya se aque usemos una tabla, hagamos que floten o, como en este caso, la propiedad display: inline-block; es lo normal, así se ve en cualquier navegador; no importa si son textos o imágenes:

123456789

Usando las nuevas propiedades del CSS3 podemos cambiar eso y ajustar el contenido en columnas de tal forma que desaparecen los espacios en blanco y se cree un mosaico pero, tiene una limitación, no funciona en Internet Explorer, ni siquiera en la versión 9 y sólo está previsto que sea soportado en la versión 10 que aún está en modo beta; de tal modo, el ejemplo inferior se verá igual que el anterior en ese navegador:

123456789

Ahora biem, quienes usen jQuery tienen la posibilidad de resolver esto con la ayuda de algunos plugins. El primero de ellos se llama columnizer y es el que me parece más interesante porque se adapta bien a situaciones distintas.

Basta colocar el script del plugin antes de <head> y luego, definir qué cosa queremos mostrar en columnas y cuáles son sus características. Si tuviera un ejemplo como el anterior que tiene esta estructura HTML:
<div id="democols">
  <span> ....... </span>
  <span> ....... </span>
  <span> ....... </span>
</div>
Debajo, llamaríamos a la función de este modo:
<script type='text/javascript'>
  $('#democols').columnize({ columns: 5, lastNeverTallest: true});
</script>
y le agregaríamos:
<div style="clear:both;"></div>
para eliminar las flotaciones de las columnas.

Las posibilidades son varias; podemos dimensionar el contenedor donde se mostrará y decirle a la función que lo divida en cierta cantidad de columnas o bien decirle que genere columnas de determinado tamaño:
$('#democols').columnize({ columns: 4 });
$('#democols').columnize({ width: 200 });
Opciones extras permiten definir el tipo de flotación (left o right), establecer si evitamos que la última columna sea la más alta, permitir que se rearmen las columnas cuando se redimensiona el contenedor, etc. También se agregan clases que permiten controlar esas columnas o usar algunas otras especiales para controlar los detalles. Todo eso puede verse en la página del autor y los ejemplos se incluyen en el ZIP que podemos descargar y estudiar.

El resultado, será este y debería funcionar pefectamente en Internet Explorer:

123456789

Otro plugin que hace algo similar es Wookmark que me aprece menos intuitivo pero que también funciona en cualquier navegador.

Como en el caso anterior, ponemos el plugin antes de </head> y debajo del HTML, agregamos la función que, en este caso, diría algo así:
<script type='text/javascript'>
  $('span').wookmark({container: $('#democols'),itemWidth: 120,autoResize: true});
</script>
donde el selector no es el contenedor sino el contenido, sea esta una etiqueta o una clase y el contenedor se agrega en las opciones junto con el ancho de las columnas.

Usando ese plugin, se vería esto:

123456789


Como se ve, hay diferencias en el resultado que generan ambos.

7 comentarios:

Gem@  

El futuro está en tus manos jQuery :)

JMiur  

Sin duda, va camino a convertirse en un standard.

Delzon Perez  

jQuery lo mejor es intuitivo y simple :D no se que hubiera hecho sin eso.

Responder
Juan Gonzalez  

JMur, he seguido los pasos de una de tus entradas, la de "Posts relacionados con miniaturas", he agregado todo, y lo he personalizado todo con CSS, pero, al final, no me aparecen las imagenes, y en el h2 y la descripción me aparece "undefinied"... ¿Será un error de lectura del script? Te dejo aquí la URL de mi blog: http://superbloggeroswebs.blogspot.com.es/2012/02/eliminar-virus-autoruninf-de-un-usb.html

En cuánto a la entrada, voy a hacer experimentos en un blog de pruebas con todo lo explicado, a ver si consigo algo decente.

Un gran saludo, no conocía tu blog, estúpendo, te sigo desde todas las partes! xD

JMiur  

Por lo que veo, te falta ejecutra la funcion leerpostetiquetas() que es la que lee las etiquetas de la entrada. El script está pero no has agregado una parte y que debe ir antes de mostrarlos.

Ahora, simplemente meustra eso porque no hay contenido que mostrar.

Responder
Anibal Gutierrez  

Esto esta genial pero, como se supone que lo haga en blogger? No entiendo mucho.

JMiur  

No sé que quieres hacer.

Responder

¿Quiere dejar un comentario?

recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...

Todos los archivos y demos alojados en Fileden han sido redireccionados y deberían estar funcionando correctamente.
De todos modos, también puede accederse a ellos a través de SkyDrive

Nota: sólo los miembros de este blog pueden publicar comentarios.

Si le gusta ir a lo seguro utilice este botón para abrir los comentarios en una ventana modal en esta misma pagina.

Si añora tiempos idos, use este enlace para agregar un comentario al viejo estilo ...

 
CERRAR