0

Curiosidades con CSS

Un cuadrado, dividido en cuatro partes
<div style="border-bottom: 50px solid lightblue; border-left: 50px solid red; border-right: 50px solid green; border-top: 50px solid yellow; height: 0;width: 0;"> </div>
Un triángulo.
<div style="border-bottom: 50px solid yellow; border-left: 30px solid #101921; border-right: 30px solid #101921; margin-bottom: 30px; width: 0;"> </div>
Un moño
<div style="border: 30px solid salmon; border-bottom: 15px solid #101921; border-top: 15px solid #101921; height: 0; width: 0;"> </div>

Una flecha.
Hacia allá
<style>
.right_arrow {position: relative; height: 50px; width: 250px;}
.right_arrow .body {background-color: SteelBlue; color:#FFF; line-height: 50px; text-align: center; height: 50px; width:100px;}
.right_arrow .arrow {border: 25px solid #101921; border-left: 10px solid SteelBlue; position:absolute; left:100px; top: 0; height: 0;}
</style>

<div class="right_arrow"><div class="body"> ... texto ... </div><div class="arrow"></div></div>
Y otra flecha.
Hacia el otro lado
<style>
.left_arrow {position: relative;}
.left_arrow .arrow {border: 25px solid #101921; border-right: 25px solid #CC0000; margin-left: -25px; overflow: hidden; width:0; height:0;}
.left_arrow .body {background-color: #CC0000; color: white; margin: -35px 0 0 25px; left:25px; text-align: center; top:15px; height:20px;}
</style>

<div class="left_arrow"><div class="arrow"></div><div class="body"> ... texto ... </div></div>

REFERENCIAS:Cult-f.net

0

Si veinte años no fueran nada


REFERENCIAS:arturogoga.com

0

Iconos RSS muy coloridos

Doce iconos RSS llenos de color en formato png y con unas medidas de 128px x 128px.

Como su creadora dice, están bajo licencia "haz lo que gustes con ellos y se feliz".

Para descargarlos pincháis sobre el que os guste con el botón derecho del ratón y "guardar como".

RSS1RSS2RSS3RSS4RSS5RSS6RSS7RSS8RSS9RSS10RSS11RSS12

0

Tumblr y Blogger (Parte 2)

Integrar Tumblr a Blogger o a cualquier otro sitio web es bastante sencillo, lo difícil va a ser explicarlo.

Como la característica principal de este servicio es crear entradas de diferente tipo (Text, Photo, Quote, Link, Chat, Audio, Video), las alternativas disponibles son muchas ya que esa diferencia de entradas no es abstracta, cada una de ellas tiene sus propias características y se pueden leer por separado o filtar para no mostrarlas parcial o totalmente.

Supongamos que una entrada es un video ¿Qué mostraríamos en nuestro blog? ¿El video en si mismo? ¿Un enlace? ¿Nada? ¿Mostraremos los textos con formato o sin formato? ¿Qué haremos con los audios? Es imposible generar scripts para todas las variantes así que, este modelo tendrá ciertos limites subjetivos:
  • los textos, las citas y los enlaces se mostarán sin formato
  • las imágenes, reducidas y sin los textos adicionales
  • el audio mostrará un reproductor pero no los textos
  • los videos no se mostrarán y serán reemplazados por un enlace
  • las entradas de conversaciones (Chat) serán ignoradas
  • se cargará una cantidad de entradas y se mostrará una por vez con la posibilidad de navegar entre ellas
Se basa en un modelo llamado tumblrBadge que utiliza JSON, y funciona de manera similar a lo que hacemos para leer Twitter.

Para implementarlo, debemos agregar un elemento HTML en la plantilla y allí, colocar el siguiente código:
<div id="contenedorTumblr"> </div>
Nada más; ese, será el DIV contenedor donde lo mostraremos.

El script lo vamos a colocar al final de la página, antes de </body> para que de este modo no interfiera con otros y que comience a cargar los datos cuando nuestra página ya esté visible.

<script type='text/javascript'>
//<![CDATA[

var listaTU=new Array();
var maxsTU=0;
var actualTU=0;

function tumblrCallback(obj) {

// --------------- datos a definir usuario ---------------
var usuario = "http://NOMBRE.tumblr.com/"; // la URL de Tumblr (colocar barra final)
var cuantosPosts = 10; // cantidad de posts a leer
// --------------- final datos a definir --------------------


var contarAux=0;
var tumblrs = obj;

for (var i=0; i<cuantosPosts; i++){
elPost= tumblrs.posts[i]; // leer cada uno de los posts

// algunos de los datos, los leeremos como textos planos eliminando los formatos
textoPlano = elPost["regular-body"] || elPost["photo-caption"] || elPost["quote-source"] || elPost["link-text"] || elPost["link-url"] || elPost["video-caption"] || elPost["audio-caption"] || "";

// filtramos los tipos de posts a mostrar
if (/regular|photo|quote|link|video|audio/.test(elPost.type)) {

// y en funcion del tipo de post, leemos el contenido
if (elPost.type === "photo") { // las fotos
photoURL = elPost["photo-url-250"];
contenido = '<div class=\"TumblrPhoto\" ><img src=\"' + photoURL + '\" /></div>'
} else if (elPost.type === "quote") { // las citas
contenido = '<div class=\"TumblrCita\"><span>' + elPost["quote-text"] + '</span>' + textoPlano + '</div>';
} else if (elPost.type === "link") { // los enlaces
contenido = '<div class=\"TumblrLink\"><a href="' + elPost["link-url"] + '">' + textoPlano + '</a></div>';
} else if (elPost.type === "video") { // los videos
contenido= '<div class=\"TumblrVideo\">VIDEO<span>' + textoPlano + '</span></div>';
} else if (elPost.type === "audio") { // los audios
contenido= '<div class=\"TumblrAudio\">' + elPost["audio-player"] + '</div>';
} else if (elPost.type === "regular") {
contenido = '<div class=\"TumblrRegular\">' + textoPlano + '</div>';
}

// creamos el codigo de salida
if (contenido) {
// en la parte superior, logo enlaces, feeds y navegacion
salida = '<table class=\"enlacesTumblr\" cellpadding=\"0\" cellspacing=\"0\"><tbody>';
salida += '<tr><td><a target=\"_blank\" href=\"' + usuario +'\"><img src=\"http://img145.imageshack.us/img145/2020/ttumblrs.png\" /> '; // LOGO TUMBLR
salida += '<a href=\"' + usuario + 'rss\" target=\"_blank\"><img src=\"http://img218.imageshack.us/img218/2353/trss.png\" /></a></td>'; // LOGO RSS
salida += '<td style=\"text-align:right;\"><span class=\"navegarTumblr\"><a href=\"javascript:navegaTU();\">siguiente</a></span></td></tr>';
salida += '</tbody></table>';
// luego, el contenido del post a mostrar
salida += contenido;
// por ultimo, el enlace directo a ese post
salida += '<div id=\"verTumblr\"><a target=\"_blank\" href=\"' + elPost.url + '\">ver post</a></div>';
// y lo guardamos en una lista
listaTU[contarAux] = salida;
contenido = "";
salida = "";
contarAux =contarAux +1;
}
}
}
// cuando terminamos de leer, mostramos el ultimo post publicado
maxsTU=contarAux;
document.getElementById('contenedorTumblr').innerHTML = listaTU[0];
}

function navegaTU() {
actualTU=actualTU+1;
if (actualTU==maxsTU) {
actualTU=0;
}
document.getElementById('contenedorTumblr').innerHTML = listaTU[actualTU];
}

//]]>
</script>
<script src='http://NOMBRE.tumblr.com/api/read/json?callback=tumblrCallback&amp;num=10' type='text/javascript'/>

Allí sólo debemos configurar dos datos:
// --------------- datos a definir usuario ---------------
var usuario = "http://NOMBRE.tumblr.com/"; // la URL de Tumblr (colocar barra final)
var cuantosPosts = 10; // cantidad de posts a leer
// --------------- final datos a definir --------------------
lo mismo haremos en el script final que es la llamada a JSON.

Un detalle (uno de tantos) que puede modificarse es cambiar el tamaño de las miniaturas de las entradas de tipo PHOTO:
// pueden ser 75, 100, 250, 400 o 500
photoURL = elPost["photo-url-250"];
Si quisieramos mostrar los videos y no el enlace a estos, deberíamos cambiar esto:
contenido= '<div class=\"TumblrVideo\">VIDEO<span>' + textoPlano  + '</span></div>';
por algo así:
contenido= '<div class="\TumblrVideo\">' + elPost["video-player"] + '</div>';
En el script hay dos imágenes ya alojadas en ImageShack, dos logos que pueden ser cambidos por cualquier otro. Tanto el script como las imágenes se encuentran contenidos en este archivo ZIP

Cada sector creado tiene un ID o una clase CSS para poder personalizar la salida así que podemos agregar el estilo antes de </head>.

<style>
#contenedorTumblr { /* el contenedor en si mismo */
font-size: 11px;
}
table.enlacesTumblr { /* la línea superior con enlaces */
margin: 5px 0;
padding: 0 10px;
width: 100%;
}
.navegarTumblr { /* enlace navegación entre tumblrs */
display: block;
text-align: right;
}
#verTumblr { /* la línea inferior */
margin-top: 5px;
text-align: right;
}
#verTumblr a {
margin: 5px 0;
padding: 0 10px;
text-align: right;
}
div.TumblrPhoto { /* un post de tipo PHOTO */
margin: 0 auto;
text-align: center;
}
div.TumblrCita { /* un post de tipo QUOTE */
margin: 0 auto;
text-align: right;
width: 90%;
}
div.TumblrCita span {
display: block;
font-style: italic;
text-align: center;
}
div.TumblrCita i {
font-style: normal;
font-weight: bold;
}
div.TumblrLink { /* un post de tipo LINK */
text-align: center;
}
div.TumblrVideo { /* un post de tipo VIDEO */
font-weight: bold;
text-align: center;
}
div.TumblrVideo span {
font-weight: normal;
}
div.TumblrAudio { /* un post de tipo AUDIO */
text-align:center;
}
div.TumblrRegular { /* un post de tipo REGULAR */
font-size: 11px;
}

</style>


0

Columnas en el Footer

Hace unos días veíamos una forma de dar utilidad al footer, le añadíamos opción para añadir gadgets y a modo decorativo una imagen de fondo. Adelantaba que si la idea era añadir varios gadgets lo mejor era crear divisiones de forma que el contenido quedara ordenado.


Para empezar lo que haremos será añadir las siguientes líneas de código justo antes de ]]></b:skin>

#footer-columna-contenedor {
clear:both;
}
.footer-columna {
padding: 10px;
}

Luego dejaremos el footer libre de gadgets si es que los tenemos, podemos hacer dos cosas arrastrarlos a la sidebar provisionalmente o copiar las líneas de código pertenecientes a cada gadget y pegarlas en el bloc de notas para más tarde volver a añadirlos.


Las líneas de código empiezan todas con b:widget más o menos así:

<b:widget id='BlogArchive1' locked='false' title='Archivo del blog' type='BlogArchive'/>

Una vez dejamos el footer libre buscamos al final de la plantilla lo siguiente:

<div id='footer-wrapper'>
<b:section class='footer' id='footer' showaddelement='yes'/>
</div>

De no tener la opción de añadir gadgets sería algo así:

<div id='footer-wrapper'>
<b:section class='footer' id='footer'/>
</div>

En ambos casos lo que haremos será sustituir la línea en negrita por lo siguiente:

<div id='footer-columna-contenedor'>

<div id='footer-izquierdo' style='width: 30%; float: left; margin:0; text-align: left;'>
<b:section class='footer-column' id='col1' preferred='yes' style='float:left;'/>
</div>

<div id='footer-centro' style='width: 40%; float: left; margin:0; text-align: left;'>
<b:section class='footer-column' id='col2' preferred='yes' style='float:left;'/>
</div>

<div id='footer-derecho' style='width: 30%; float: right; margin:0; text-align: left;'>
<b:section class='footer-column' id='col3' preferred='yes' style='float:right;'/>
</div>

<div style='clear:both;'/>

<div id='footer-bottom' style='text-align: center; padding: 10px; text-transform: none;'>

<b:section class='footer' id='col-bottom' preferred='yes'/>

</div>

<div style='clear:both;'/>

</div>

Miramos en vista previa para ver si es posible guardar los cambios y si es así guardamos.
En plantilla de diseño lo veremos de esta forma.


Ahora vamos a personalizar ese nuevo espacio.
Vamos otra vez justo antes de ]]></b:skin> y añadimos lo siguiente:

#col1{
background:#000;
margin: 5px;
padding: 5px;
border: 1px solid #fff;
}
#col1 h2{
background:#000;
margin: 0.0em 0 .5em;
padding: 4px 3px;
text-align: center;
font-size: 90%;
color:#fff;
}
#col2{
background:#000;
margin: 5px;
padding: 5px;
border: 1px solid #fff;
}
#col2 h2{
background:#000;
margin: 0.0em 0 .5em;
padding: 4px 3px;
text-align: center;
font-size: 90%;
color:#fff;
}
#col3{
background:#000;
margin: 5px;
padding: 5px;
border: 1px solid #fff;
}
#col3 h2{
background:#000;
margin: 0.0em 0 .5em;
padding: 4px 3px;
text-align: center;
font-size: 90%;
color:#fff;
}

Nos familiarizamos con los estilos intentando conocer a qué parte corresponde cada uno para poder personalizarlos.

Contenido
footer izquierdo col1
footer centro col2
footer derecho col3

Títulos
footer izquierdo col1 h2
footer centro col2 h2
footer derecho col3 h2

Con background estamos añadiendo color de fondo, en border añadimos estilos al borde y utilizamos color para el color del texto.

Guardamos los cambios y en plantilla de diseño añadimos esos gadgets que tenemos en espera o los que pensamos añadir.El resultado sería algo así.

Un poco triste y aburrido ¿verdad? vamos a darle un poco de vidilla pero primero le daremos color a ese fondo, buscamos las primeras líneas que añadimos y le damos color.

#footer-columna-contenedor {
background:#000;
clear:both;
}

Podemos eliminar el color de fondo y borde de los gadgets y añadir una imagen en su lugar.

#footer-columna-contenedor {
background-image:url('url-de-tu-imagen');
clear:both;
}

Se puede seguir jugando...






Más ejemplos de footer sencillos de crear.


0

Verificar que las URLs son correctas

La mayor parte de las veces, cuando me consultan sobre algún problema, el error es siempre el mismo, la dirección URL de algún archivo es errónea.

La URL de "algo" es eso que vemos en la barra de direcciones del navegador y en Blogger, siempre debe comenzar con http://

Sabiendo esto, debería ser sencillo verificar si la dirección que queremos usar es correcta o incorrecta, bastaría copiarla y pegarla en esa barra, pulsar Enter y ver dónde nos lleva.

Como el problema surge con archivos que queremos usar, lo que debemos ver es qué pasa cuando colocamos esa dirección. Por ejemplo, si se trata de imágenes, lo que deberíamos ver es la imagen en si misma, sola, sin nada más, en Firefox, incluso, el navegador nos mostrará su tamaño.


Supongamos que usamos ImageShack, subimos una imagen y al terminar, nos mostrará varias alternativas (en este momento se han simplificado bastante). De todas ellas, sólo una es la imagen en si, la que dice Direct link to image, la otra, Short link to image, nos abrirá una página.

http://img13.imageshack.us/img13/6812/esqueletob.gif
http://yfrog.com/0desqueletobg

Lo mismo ocurrirá con cualquier otro servicio. Por ejemplo, en Fileden, apenas la subimos, nos dará varias alternativas, una etiqueta, un enlace, etc,; también allí, el dato que nos importa es sólo uno: Direct URLs

http://www.fileden.com/files/2009/3/26/2379410/esqueleto.gif

En todos los servicios ocurrirá lo mismo; nos ofreceran varias opciones con distintos formatos y siempre, deberemos elegir la que indique un acceso directo al archivo aunque hay que tener en centa que, si bien hay muchísimos servicios que permiten alojar archivos, no todos permiten el uso directo de esos archivos (hotlink).

Si no son imágenes, verificarlo es igual de sencillo pero no siempre se nos mostrará el contenido en el navegador, dependerá de cuál usamos o  qué plugins, extensiones o configuración estemos usando. La regla general es, si el archivo se ve o si aparece la ventana para descargarlo, la URL es correcta en cambio si se abre una página web, la URL es incorrecta.

0

¿Corbatas? Corbatas


Sí. Está muy bien eso de la mini cámara espía en la corbata de la que habla SpamLoco pero, a decir verdad, prefiero algo un poco más informal:



Y, en todo caso, si quiero ponerme serio me compraría la corbata solar de la Iowa State University idea


REFERENCIAS:crookedbrains.net