Circus by Joker | |
![]() | Contiene 5 íconos de 256x256, en formato PNG. descargar |
![]() |
jCodeCollector: Guardar códigos de modo ordenado |
El programa no sólo permite agregarlos sino también ordenarlos en distintas secciones, agregarles etiquetas o comentarios y posee un buscador interno que nos facilita encontrarlos.
De modo automático, reconoce distintos lenguajes (CSS, HTML, SQL, PHP, JavaScript, etc) y muestra los códigos con la sintaxis resaltada en diferentes colores, lo que incluso, hace que sea fácil encontrar errores y solucionarlos.

liteAccordion: Un acordeón para jQuery |
El demo completo podemos descargarlo desde github pero para agregarlo a un sitio, sólo necesitamos dos archivos: liteaccordion.jquery.js y liteaccordion.css. Entonces, primero agregamos jQuery antes de </head> si es que no la tenemos:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="URL_liteaccordion.jquery.js"></script>
<script type='text/javascript'> //<![CDATA[ ....... aquí pegamos el contenido del archivo liteaccordion.jquery.js ....... //]]> </script>
<style> ....... aquí pegamos el contenido del archivo liteaccordion.css ....... </style>
<div id="miejemplo" class="accordion">
<ol>
<!-- cada una de las pestaña -->
<li>
<h2><span>Pestaña UNO</span></h2>
<div>
<!-- el demo original usa etiquetas de HTML5 pero, el contenido puede ser cualquier otra -->
<span class="figure">
<img src="URL_imagen1" />
<span class="figcaption">un texto optativo</span>
</span>
</div>
</li>
</ol>
</div>
<script>
$(document).ready(function(){
$('#miejemplo').liteAccordion({
onActivate : function() { this.find('span').fadeOut(); },
slideCallback : function() { this.find('span').fadeIn(); },
autoPlay : true, pauseOnHover : true, theme : 'dark', rounded : true, enumerateSlides : true
}).find('span:first').show();
});
</script>
containerWidth : 600 // ancho total
containerHeight : 350 // alto total
headerWidth : 48 // ancho delas pestañas cerradas
firstSlide : 1 // el número de la primer pestaña activa
slideSpeed : 800 y cycleSpeed : 6000 // velocidad de la animación
rounded : false // si no se quieren bordes redondeados
enumerateSlides : false // muestra u oculta un número en cada pestaña
theme : 'basic' // el tema CSS que puede ser 'basic', 'light', 'dark', o 'stitch'
Esto ultimo, también puede ser modificado ... con paciencia y si se usan textos, habría que agregarle propiedades extras como:
span.figure { display: block; height: 100%; margin: 0; width: 100%; } span.figcaption { background: #000; background: rgba(0,0,0,0.7); border-radius: 4px; bottom: 20px; color: #FFF; padding: 10px 15px; position: absolute; right: 30px; z-index: 3; }
Columnas con CSS: Mosaico de entradas |
Vamos a jugar y usar un ejemplo previo, crear una página con un resumen de entradas que incluya paginación y simplemente, vamos a dejar todo como está pero cambiaremos algunas de las reglas de estilo. El modelo original es el que podía verse acá.
En ese ejemplo, el DIV cuyo ID es resultados es el rectángulo donde se muestran las entradas y, cada una de ellas es otro DIV cuya clase es paginaposts. El script, simplemente lee una cantidad determinada de entradas, extrae una imagen y la muestra junto al título que es una etiqueta H6. Nada de eso cambiará, sólo lo mostraremos de manera distinta, simulando el estilo mosaico de las Vistas Dinámicas de Blogger.

<style> #resultados { /* se mostrará todo en cuatro columnas */ -moz-column-count: 4; -moz-column-gap: 0; -webkit-column-count: 4; -webkit-column-gap: 0; column-count: 4; column-gap: 0; margin-left: 0; } .paginaposts { /* cada entrada */ background-color: #EEE; border-bottom: 4px solid #101921; display: inline-block; margin: 0; opacity: 0.8; padding: 10px; position: relative; text-align: center; width: 205px; } .paginaposts:hover { opacity: 0.8; } .paginaposts a { vertical-align:top; } .paginaposts img { width: 205px; } .paginaposts h6 { /* el título permanece invisible hasta que ponemos el cursor encima */ background-color: #AAA; height: 100%; left: 0; margin: 0; opacity: 0; padding: 10px; position: absolute; top: 0; width: 204px; -moz-transition: all 1s; -webkit-transition: all 1s; -o-transition: all 1s;transition: all 1s; } .paginaposts h6 a { color: #000; font-size: 18px; text-shadow: 1px 1px 1px #FFF; } .paginaposts:hover h6 { opacity: .8; } </style>
Usar CSS para crear etiquetas repetitivas |
Esto, que es algo habitual, se puede tranformar en un trastorno cuando, por casualidad, cambiamos el diseño o deseamos modificar esa imagen.
Muchas veces hay consultas sobre cosas similares ¿es posible modificar todas las entradas del blog sin tener que editarlas una por una? Y, la verdad es que no, que no hay forma de hacer eso.
Es cierto que podemos usar JavaScript para modificar ciertas cosas onfly, es decir que el codigo que hayamos escrito, se modifique cada vez que cargamos una página pero, para que esto funcione, debemos tener identificado claramente eso que deseamos modificar y, debe ser algo relativamente pequeño, que no exija un tiempo importante de ejecución.
Si, por ejemplo, yo tuviera algo así en varias entradas:
<a href="URL_archivo"> <img src="URL_mi_imagen" style="......." /> DESCARGAR ARCHIVO </a>
<div class='post-body' expr:id='"post-" + data:post.id'> <p><data:post.body/></p> <div style='clear: both;'/> </div> <script type='text/javascript'>cambiaralgo('<data:post.id/>');</script> <script type='text/javascript'> //<![CDATA[ function cambiaralgo(id) { var imagen; var contenido = document.getElementById("post-" + id); if(contenido!=null) { var listaimagenes = contenido.getElementsByTagName("img"); if(listaimagenes.length>0){ for(var i=0; i<listaimagenes.length; ++i) { imagen = listaimagenes[i].src; if(imagen=="URL_mi_imagen"){ listaimagenes[i].src = "URL_NUEVA_imagen"; } } } } } //]]> </script>
Es una solución que puede ser aplicada a casi cualquier otra cosa pero, no es lo ideal.
Lo lógico, cuando se quieren usar este tipo de códigos repetitivos, es usar CSS, crear clases y ahí, establecer las propiedades; puedo hacerlo de manera sencilla o puedo complicarlo hasta cualquier extremo. El uso de una clase para este tipo de cosas, me permitirá modificar todas las entradas, cambiando las reglas una sola vez.
En el ejemplo anterior:
<a class="descargar" href="URL_archivo"> <img src="URL_mi_imagen" style="......." /> DESCARGAR ARCHIVO </a>
.descargar { background: transparent url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqXVri7_3_zpgtUXJpkz6SzhQmcAEoD5Rc7qyvHrH5A3kH50_6TFIK5UEQmD7hWx-WwfFP2FnDAEJnmQPvqsQebPm9H350hxy6hekO73_sLBmxQbeUKr_CfsNy_yB8fk2BBuLVsQ/s0/downloadfile.gif) no-repeat left top; color: #4B9043 !important; font-family: Verdana !important; font-size: 14px !important; padding-left: 35px; vertical-align: middle; }
.descargar:after { content: "DESCARGAR ARCHIVO"; }
c64 YOURSELF |




Traducciones de textos con el API de Google |
Para esto, necesitamos agregar el script si es que no lo tenemos ya que en un blog de Blogger, suele estar agregado para multiples tareas.
Como cualquier otro, lo ponemos antes de </head>;
<script src='http://www.google.com/jsapi' type='text/javascript'></script>
<div id="idiomas"> <a id="L_es" class="lenguajeactual" href="javascript:void(0);" onclick="traduce('es');">Español</a> <a id="L_en" class="" href="javascript:void(0);" onclick="traduce('en');">Inglés</a> <a id="L_it" class="" href="javascript:void(0);" onclick="traduce('it');">Italiano</a> <a id="L_fr" class="" href="javascript:void(0);" onclick="traduce('fr');">Francés</a> <a id="L_pt" class="" href="javascript:void(0);" onclick="traduce('pt');">Portugués</a> </div> <div id="miejemplo"> ....... el texto ....... </div>
<style> #idiomas { background-color: #000; border: 1px solid #444; margin: 0 auto; padding: 5px 10px; width: 500px; } #idiomas a { border-radius: 5px; color: #DDD; display: inline-block; font-size: 17px; padding: 5px 15px; } #idiomas a:hover { color: #FFF; } .lenguajeactual { background-color: #444; } #miejemplo { border: 1px solid #444; border-top:none; color: #EEE; font-size: 16px; padding: 10px 20px; margin: 0 auto; width: 480px; } </style>
<script> var lenguaje = "es"; // es el lenguaje por defecto google.load("language",1); // cargamos el API // definimos la función que ejecutará el API var callback = function(result) { if(result.translation) { var translateDiv = document.getElementById("miejemplo"); translateDiv.innerHTML=result.translation; } } // ejecutamos la función function traduce(traducir) { document.getElementById("L_" + lenguaje).className = ""; // cambiamos al clase del enlace anterior var translateDiv = document.getElementById("miejemplo"); // es el DIV donde está el texto google.language.translate(translateDiv.innerHTML,lenguaje,traducir,callback); // ejecutamos la función del API lenguaje = traducir; // preservamos el lenguaje actual document.getElementById("L_" + traducir).className = "lenguajeactual"; // cambiamos la clase del actual } </script>
Este es un párrafo en español.
Puede ser traducido haciendo un click en el enlace anterior.
Utilizando el API de Google y es relativamente fácil de implementar.
Columnas con CSS: Introducción |
Para entender qué significa esto de las columnas, lo mejor es comenzar a entender cómo se ven las cosas de manera normal.
Supongamos que tengo un contenedor (un DIV) con un cierto ancho (width) y dentro de él, coloco seis imágenes cuyos anchos son iguales pero varían su altura:
<style> .demo { background-color:#000; line-height:0; margin:0 auto; width: 600px; .demo img { outline: 1px solid Turquoise; width: 200px; } </style> <div class="demo"> <img src="URL_IMAGEN_1"/> ....... <img src="URL_IMAGEN_7"/> </div>






Sin otro tipo de propiedad, las imágenes se mostrarán una al lado de la otra, alineadas por su base. Si quisiera, podría alinearlas por su parte superior o centrarlas verticalmente, estableciendo la propiedad vertical-align en las etiquetas IMG; en el demo, sería:
.demo img { vertical-align: top; } o bien .demo img { vertical-align: middle; }
.demo { height:398px; }
.demo img { float: left; } o bien .demo img { float: right; }
Sea como sea y haga lo que haga, las imágenes dejarán espacios en blanco (en negro en este caso) entre ellas ya que todas tienen alturas diferentes y justamente esa es la primera característica sobresaliente de las nuevas propiedades; las columnas ajustan el contenido de tal modo de no dejar espacios entre ellos.
En el mismo ejemplo inicial, agrego esto:
.demo { ....... -moz-column-count:3; -moz-column-gap:0; -webkit-column-count:3; -webkit-column-gap:0; column-count:3; column-gap:0; }






column-count indica la cantidad de columnas a ser mostradas; si el ancho del contenedor es escaso, se solaparán; si el ancho del contenedor es demasiado grande, quedrán espacios entre ellas
column-gap es el espacio entre los contenidos, la separación entre ellos y depende del navegador (generalmente es 1em) así que ponemos cero para controlarlo nosotros msimos
Hay propiedades extras que pueden ser agregadas:
column-width establece el ancho de esas columnas
column-rule se utiliza para establecer el tipo de borde y tiene la misma sintaxis que la propiedad border
column-rule-color es el color del borde, similar a border-color
column-rule-style es el estilo del borde, similar a border-style
column-rule-width es el tamaño del borde, similar a border-width
Más ejemplos; cinco columnas con contenidos de 100 pixeles de ancho:










Blogger: La nueva interfaz será obligatoria |
De todos modos, por suerte, durante algún tiempo más, también habrá una opción de “Switch back” para volver al estilo normal aunque anuncian que en algún momento, esa opción desaparecerá.
Conociendo que los tiempos de esta gente son indefinidos y que hace años y años que siguen funcionando las plantillas clásicas pese a haber anunciado que también desaparecerían, imagino que, quienes no gustamos de ese nuevo escritorio, tendremos algún tiempo de alivio.

Imágenes y CSS: Todo depende del navegador |
<img src="URL_IMAGEN"/>

<img style="border-radius:20px" src="URL_IMAGEN"/>

<img style="border-radius: 20px;border: 5px solid #FFF;" src="URL_IMAGEN"/>

<img style="border-radius: 20px;border: 5px solid #FFF;padding: 10px;" src="URL_IMAGEN"/>

<img style="border-radius:100px;padding: 0 50px;" src="URL_IMAGEN"/>

<img style="background-color: #678;border: 5px solid #FFF;border-radius: 100px;padding: 10px 50px;" src="URL_IMAGEN"/>

<img style="background-color: #678;border: 5px solid #FFF;border-radius: 100px;padding: 10px 50px;box-shadow:0 0 10px #DEF;" src="URL_IMAGEN"/>

<img style="background-color: #678;border: 5px solid #FFF;border-radius: 100px;padding: 10px 50px;box-shadow:0 0 15px #000000 inset,0 0 10px #DEF;" src="URL_IMAGEN"/>

Si todo falla: Hay que borrar la caché del navegador |
El problema con esto es que, en ciertas ocasiones, ese proceso nos juega una mala pasada ya que, si el sitio o página que estamos mirando posee un error, ese error también será descargado y, aunque sea eventual, es posible que nosotros no nos demos por enterados ya que seguiremos viendo la copia equivocada. Lo mismo ocurre cuando hacemos cambios en algún archivo y ese cambio no parece funcionar; es más, si vemos el código fuente, no veremos el cambio.
Hay ciertas etiquetas META que pueden agregarse a cualquier sitio y establecen la forma en que el navegador debería manejar la cache de cada página en particular pero, al margen de todo eso, en Blogger, el asunto se nos complica, sobre todo cuando surgen esos extraños errores con números y letras que no parecen significar nada y que en realidad nada significan porque se generan aleatoriamente.
En la gran mayoría de los casos, ese error es sólo temporal, alguna falla en el servicio o en la conexión, cualquier byte que llega torcido o con mal humor; da lo mismo y poco puede hacerse al respecto; lo primero es tratar de forzar la carga usando la combinación de teclas Ctrl+F5 que le ordena al navegador que no sea perezoso, que ignore lo que guardó en la caché y cargue todo otra vez.
Si el error persiste y no parece tener explicación, lo que nos sugieren siempre es "borren la caché del navegador" y esto es algo sencillo de hacer.
Para asegurarnos de no dejar rastros, cerramos todas las pestañas y lo dejamos abierto en una página en blanco (about:blank); luego, tanto en Firefox, Internet Explorer como en Chrome, podemos usar la combinación de teclas Ctrl+Mayús+Supr para que se abra la ventana con las opciones. Sino, dependiendo de cuál usamos, haremos esto:
- en Firefox menú Herramientas y seleccionamos Limpiar el Historial reciente o bien Herramientas | Opciones y en la pestaña Privacidad veremos el mismo enlace.
- en Internet Explorer menú Herramientas y seleccionamos Eliminar el Historial de Exploración o bien Herramientas | Opciones de Internet y allí veremos Historial de Exploración
- en Chrome haremos click en el ícono de Personalizar y seleccionamos Eliminar datos de navegación
- en Opera: menú Configuración y seleccionamos Eliminar información privada
Navegación con círculos |
El truco se basa en anidar etiquetas dentro del enlace y de esa manera, poder controlarlas de manera individual:
<a class="circulo" href="javascpit:void(0);"> <span style="background-image: url(IMAGEN_VISIBLE);"></span> <div style="background-image:url(URL_IMAGEN_OCULTA);"></div> </a>
<style> /* los enlaces pueden tener cualquier dimensión */ a.circulo { display: inline-block; height: 46px; position: relative; width: 75px; } /* la etiqueta SPAN contiene la imagen visible */ a.circulo span { background: #00BE98 url() no-repeat 50% 50%; /* la imagen es un fondo */ display: block; cursor: pointer; /* la dimensión de la imagen */ height: 46px; width: 46px; border-radius: 23px; /* se ve como círculo con un radio que es la mitad de su tamaño */ /* la posicionamos de manera absoluta en el centro */ position: absolute; top: 50%; left: 50%; /* le ponemos márgenes negativos arriba y a la izquierda para centrarla */ margin: -23px 0 0 -23px; /* la animación */ -moz-transition: all 0.4s ease; -webkit-transition: all 0.4s ease; -o-transition: all 0.4s ease; transition: all 0.4s ease; } /* la imagen oculta */ a.circulo div { background: transparent url() no-repeat center center; height: 0; left: 50%; margin: 0; overflow: hidden; position: absolute; top: 50%; width: 0; z-index: 100; -moz-transition: all 0.2s ease-out; -webkit-transition: all 0.2s ease-out; -o-transition: all 0.2s ease-out; transition: all 0.2s ease-out; } /* al poner el cursor encima del enlace */ /* la etiqueta SPAN se "agranda" */ a.circulo:hover span { border-radius: 75px; height: 150px; margin: -75px 0 0 -75px; opacity: 0.6; width: 150px; } /* la etiqueta DIV se hace visible */ a.circulo:hover div { border-radius: 75px; height: 150px; margin: -75px 0 0 -75px; width: 150px; } </style>
El retorno del Lightbox de Blogger |
Para modificar esa oción debe irse a Configuración | Formato, seleccionar NO en al casilla correspondiente y guardar:
Open images in Lightbox
If Yes is selected, when a reader clicks on an image in a post, it will be displayed in a slideshow-like overlay instead of leaving your page and navigating to the image.
Esta es una opción individual de cada blog y por lo tanto, si tenemos varios, hay que hacer lo mismo en cada uno de ellos.
Videos fluidos sin librerías |

Cuanto más automatizamos una tarea, más cuidado tenemos que tener para establecer límites precisos ya que los navegadores no son inteligentes, no tienen sentido común ni ninguna otra característica humana; simplemente hacen lo que nosotros les indicamos que hagan.
Google Plus Icons |
IS Google 1 | |
![]() | Contiene 10 íconos de 256x256, en formato PNG. descargar |
![]() |
Google Plus | |
![]() | Contiene 80 íconos de 16x16, 24x24, 32x32, 48x48, 64x64 y 128x128, en formato PNG. descargar |
![]() |
Google Plus | |
![]() | Contiene 10 íconos de diferentes tamaños y en varios formatos. descargar |
![]() |
Cómo crear una ventana modal propia (final ) |

Una ventana modal no es otra cosa que un contenedor HTML como cualquier otro que tiene una característica básica, permanecer oculta hasta que se hace click en algún botón. En principio, nada en particular y podrían diseñarse cientos de modelos gráficos pero digamos que lo más usual es que al abrirse, la pantalla se oscurece y sobre la página se muestra un elemento con cierto contenido que luego, podemos cerrar.