Saturday, December 22, 2012

Tarjeta de Navidad en CSS

Esta entrada en realidad tiene dos motivos, la primera es para desearles a todos y cada uno de los lectores de este blog, una feliz Navidad, pero m?s aun, que estas fechas sean un pretexto para reconciliarnos con quienes hemos discutido, disfrutar a nuestros seres queridos, y valorar todo aquello que tenemos para as? compartir con los dem?s un poco de lo mucho que la vida nos da.


?Feliz Navidad!

les desea Ciudad Blogger


El otro motivo es para compartirles esta tarjeta de navidad hecha s?lo con CSS, las ?nicas im?genes que hay en ella son la de los copos de nieve.
Es un peque?o experimento que hice basado con la nieve de Joshua Johnson y las esferas de Catalin Rosu, yo pr?cticamente s?lo le he a?adido algunos efectos de hover y los bordes.

Como est? hecho con CSS s?lo se ver? bien en navegadores modernos, as? que si lo ves medio abstracto ya sabes porqu� raz?n se ve as?.
El c?digo para copiar y pegar en una entrada es este:
<link href='http://fonts.googleapis.com/css?family=Clicker+Script' rel='stylesheet' type='text/css'/>
<style>
@keyframes xmas-snow {
0% {background-position: 0px 0px, 0px 0px, 0px 0px;}
100% {background-position: 500px 1000px, 400px 400px, 300px 300px;}
}
@-moz-keyframes xmas-snow {
0% {background-position: 0px 0px, 0px 0px, 0px 0px;}
100% {background-position: 500px 1000px, 400px 400px, 300px 300px;}
}
@-webkit-keyframes xmas-snow {
0% {background-position: 0px 0px, 0px 0px, 0px 0px;}
100% {background-position: 500px 1000px, 400px 400px, 300px 300px;}
}
@-ms-keyframes xmas-snow {
0% {background-position: 0px 0px, 0px 0px, 0px 0px;}
100% {background-position: 500px 1000px, 400px 400px, 300px 300px;}
}
#xmas-contenedor {
height: 380px;
width:580px;
background-color: #6b92b9;
background-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg822W10L4eKH9AjIJ6b0OmRPcujuDF795EyXaUXMk55pHGVqIIYwddCW2EiWrkM0E3rWZVS4-11GqLbdtG-4coO6Wa2U3ojxF7gykphPL2uFjiJu93huBB4vT5IbXCK2_FuNgeehcoOVc/s500/snow.png), url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil3Emlx7U7FT12W2ZJxS25d6lYtgQZZv4Hzv1TK2UfckRPawq7pEDhln64Uvou3sPwLqkIyx8UhaKSNdawQACdIBY9XWJO3hFVcdDT5GhyepWBFiIxoI8qAJ3dGzaxV59BfllhrqgMav8/s400/snow3.png), url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQqr3P4bZG2IA78Auj7tUmNXaUw548gDh0IoHNVeLwQvFvInBqs0GNnD-IGm2JQP7CKBJP-l2E65rGBLsgRLuv_yL2MVrRxvT67JCSMbf_Hez1kRhfrZOmkDtv78CeV4Wk6uTX0TUy4e4/s300/snow2.png);
-webkit-animation: xmas-snow 20s linear infinite;
-moz-animation: xmas-snow 20s linear infinite;
-ms-animation: xmas-snow 20s linear infinite;
animation: xmas-snow 20s linear infinite;
position:relative;
border:5px solid #98BF21;
z-index:1;
}
#xmas-contenedor:before {
content: "";
position: absolute;
z-index: -1;
top: 0;
left: 0;
right: 0;
bottom:0;
border: 5px solid #fff;
}
#xmas-contenedor:after {
content:"";
position:absolute;
z-index:-1;
top:5px;
left:5px;
right:5px;
bottom:5px;
border: 6px dotted #98BF21;
}
#xmas-contenedor h4, #xmas-contenedor p {
font-family: 'Clicker Script', cursive;
font-size:60px;
font-weight:bold;
text-align:center;
text-shadow: 2px 2px 4px #000000;
color:#fff;
margin-top:200px;
margin-bottom:0px;
-moz-transition: all 1s;
-webkit-transition: all 1s;
-o-transition: all 1s;
}
#xmas-contenedor p {
font-size:25px;
line-height:0;
margin-top:50px;
}
html>/**/body #xmas-contenedor h4, x:-moz-any-link, x:default {
font-weight:normal;
}
html>/**/body #xmas-contenedor p, x:-moz-any-link, x:default {
font-weight:normal;
}
#xmas-contenedor h4:hover {
font-size:75px;
-moz-transition: all 1s;
-webkit-transition: all 1s;
-o-transition: all 1s;
}
#bauble-container {
list-style: none;
width: 568px;
margin: 40px auto;
padding: 0;
}
#bauble-container li {
margin: 0 20px;
float: left;
}
#bauble-container li:before {
content: "";
background: #dadada;
background: -moz-linear-gradient(bottom, #9c9c9c, rgba(255,255,255,0) );
background: -webkit-gradient(linear, left bottom, right top, from(#9c9c9c), color-stop(100%, rgba(255,255,255,0)));
height: 50px;
width: 2px;
display: block;
margin: 0 auto;
}
#bauble-container li:nth-child(odd) {
-moz-transform: rotate(-5deg);
-webkit-transform: rotate(-5deg);
-o-transform: rotate(-5deg);
-ms-transform: rotate(-5deg);
}
#bauble-container li:nth-child(odd):hover {
-moz-transform: rotate(-20deg);
-webkit-transform: rotate(-20deg);
-o-transform: rotate(-20deg);
-ms-transform: rotate(-20deg);
}
#bauble-container li:nth-child(even) {
-moz-transform: rotate(5deg);
-webkit-transform: rotate(5deg);
-o-transform: rotate(5deg);
-ms-transform: rotate(5deg);
}
#bauble-container li:nth-child(even):hover {
-moz-transform: rotate(15deg);
-webkit-transform: rotate(15deg);
-o-transform: rotate(15deg);
-ms-transform: rotate(15deg);
}
.bauble {
border-radius: 100px;
box-shadow: 0 0 5px #777777;
border: 1px solid rgba(0,0,0,0.3);
position: relative;
height: 100px;
width: 100px;
}
.bauble:before {
content: "";
background: #fff;
background: -moz-linear-gradient(left, #fff, #9c9c9c, #fff, #9c9c9c );
background: -webkit-gradient(linear, left center, right center, from(#fff), color-stop(25%, #9c9c9c), color-stop(50%, #fff), color-stop(75%, #9c9c9c));
border-radius: 2px;
box-shadow: 0 1px 0 rgba(0,0,0,0.2), 0 -1px 0 rgba(255,255,255,0.3) inset;
border: 1px solid #dadada ;
height: 10px;
width: 20px;
position: absolute;
left: 50%;
top: -12px;
margin-left: -10px;
}
.bauble:after {
content: "";
border-radius: 100px;
background: #fff;
background: -moz-linear-gradient(bottom, #fff, rgba(255,255,255,0.1) );
background: -webkit-gradient(linear, left bottom, right top, from(#fff), color-stop(100%, rgba(255,255,255,0.1)));
position: absolute;
top: 0;
left: 50%;
margin-left: -40px;
opacity: 0.15;
height: 80px;
width: 80px;
}
.red-bauble {
background: #c8171f;
background: -moz-radial-gradient(center 45deg,circle cover, #f9d0be, #c8171f);
background: -webkit-gradient(radial, 40% 40%, 0, 40% 40%, 50, from(#f9d0be), to(#c8171f));
}
.blue-bauble {
background: #00a1ee;
background: -moz-radial-gradient(center 45deg,circle cover, #cde6f9, #00a1ee);
background: -webkit-gradient(radial, 40% 40%, 0, 40% 40%, 50, from(#cde6f9), to(#00a1ee));
}
.yellow-bauble {
background: #fcb83d;
background: -moz-radial-gradient(center 45deg,circle cover, #fcf3a6, #fcb83d);
background: -webkit-gradient(radial, 40% 40%, 0, 40% 40%, 50, from(#fcf3a6), to(#fcb83d));
}
.green-bauble {
background: #4d8d00;
background: -moz-radial-gradient(center 45deg,circle cover, #d1e5b2, #4d8d00);
background: -webkit-gradient(radial, 40% 40%, 0, 40% 40%, 50, from(#d1e5b2), to(#4d8d00));
}
</style>

<div id="xmas-contenedor">
<ul id="bauble-container">
<li>
<div class="bauble red-bauble">
</div>
</li>
<li>
<div class="bauble blue-bauble">
</div>
</li>
<li>
<div class="bauble yellow-bauble">
</div>
</li>
<li>
<div class="bauble green-bauble">
</div>
</li>
</ul>
<h4>¡Feliz Navidad!</h4>
<p>les desea Ciudad Blogger</p>
</div>

Lo dicho, ?feliz Navidad a todos!

Monday, December 17, 2012

Santa Claus repartiendo regalos por el blog


La Navidad pasada vimos c?mo poner a Santa Claus volando en su trineo por el blog, un gadget de Giffy, mismo que ahora nos trae este Pap? Noel volando en un globo mientras reparte regalos por el blog. El peque?o Santa Claus se desplazar? por todo el blog mientras arroja los regalos, los cuales ir?n cayendo hasta desaparecer.
En esta misma entrada puedes ver esta decoraci?n navide?a funcionando.

Para poner este gadget de Santa Claus repartiendo regalos por el blog, entra en la Edici?n HTML de tu plantilla, y antes de </body> pega este c?digo:
<script type="text/javascript" src="http://blogparts.giffy.me/0003/parts.js"></script><p style="text-align: center;margin:0;padding:0;"><a href="http://giffy.me/baby/"><img style="border:0;" src="http://blogparts.giffy.me/0003/parts.png" alt="???????????????????" /></a></p><p style="text-align:center;font-size:12px;margin:10px 0 0 0;padding:0;">[PR] <a href="http://typing.twi1.me/">??????????!</a></p>
Guarda los cambios y listo. Es necesario decir que el c?digo agregar? un banner en japon�s al final de la p?gina. Muchos querr?n que �ste banner no aparezca, si ese estu caso entonces el c?digo que deber?s usar es este:

<div style="display:none;"><script type="text/javascript" src="http://blogparts.giffy.me/0003/parts.js"></script><p style="text-align: center;margin:0;padding:0;"><a href="http://giffy.me/baby/"><img style="border:0;" src="http://blogparts.giffy.me/0003/parts.png" alt="???????????????????" /></a></p><p style="text-align:center;font-size:12px;margin:10px 0 0 0;padding:0;">[PR] <a href="http://typing.twi1.me/">??????????!</a></p></div>
Ser? decisi?n de cada quien si dejan el banner o no, de cualquier forma s?lo lo usaremos unos d?as :)
Una vez que terminen las fiestas decembrinas quita el c?digo que has puesto y listo.

Thursday, December 13, 2012

Nieve en el fondo del blog s?lo con CSS


Hemos visto algunas maneras de poner nieve en el blog, �sta en particular me parece atractiva dado que no necesitamos usar scripts, s?lo CSS y tres peque?as im?genes. La idea es de Joshua Johnson y puedes ver el demo en este blog de pruebas.

Una ventaja de �ste m�todo es que al no utilizar scripts no sobrecargamos el blog, la desventaja es que usuarios con navegadores no modernos no podr?n verlo (en Internet Explorer funciona de la versi?n 10 para arriba).
La nieve caer? en el fondo del blog, no encima de �l, lo cual adem?s de evitar que se obstruyan enlaces y contenido (porque los copos son im?genes), evitar? tambi�n que se obstruya la visibilidad del contenido del blog.

Para poner esta nieve en el fondo de tu blog entra en Plantilla | Edici?n de HTML y antes de
]]></b:skin> pega esto:
/* Nieve en el fondo del blog
----------------------------------------------- */
@keyframes snow {
0% {background-position: 0px 0px, 0px 0px, 0px 0px;}
100% {background-position: 500px 1000px, 400px 400px, 300px 300px;}
}

@-moz-keyframes snow {
0% {background-position: 0px 0px, 0px 0px, 0px 0px;}
100% {background-position: 500px 1000px, 400px 400px, 300px 300px;}
}

@-webkit-keyframes snow {
0% {background-position: 0px 0px, 0px 0px, 0px 0px;}
100% {background-position: 500px 1000px, 400px 400px, 300px 300px;}
}

@-ms-keyframes snow {
0% {background-position: 0px 0px, 0px 0px, 0px 0px;}
100% {background-position: 500px 1000px, 400px 400px, 300px 300px;}
}

#contenedor-nieve {
background-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg822W10L4eKH9AjIJ6b0OmRPcujuDF795EyXaUXMk55pHGVqIIYwddCW2EiWrkM0E3rWZVS4-11GqLbdtG-4coO6Wa2U3ojxF7gykphPL2uFjiJu93huBB4vT5IbXCK2_FuNgeehcoOVc/s500/snow.png), url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEil3Emlx7U7FT12W2ZJxS25d6lYtgQZZv4Hzv1TK2UfckRPawq7pEDhln64Uvou3sPwLqkIyx8UhaKSNdawQACdIBY9XWJO3hFVcdDT5GhyepWBFiIxoI8qAJ3dGzaxV59BfllhrqgMav8/s400/snow3.png), url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQqr3P4bZG2IA78Auj7tUmNXaUw548gDh0IoHNVeLwQvFvInBqs0GNnD-IGm2JQP7CKBJP-l2E65rGBLsgRLuv_yL2MVrRxvT67JCSMbf_Hez1kRhfrZOmkDtv78CeV4Wk6uTX0TUy4e4/s300/snow2.png);
-webkit-animation: snow 20s linear infinite;
-moz-animation: snow 20s linear infinite;
-ms-animation: snow 20s linear infinite;
animation: snow 20s linear infinite;
}
Ahora busca la etiqueta <body> o esta l?nea:
<body expr:class='&quot;loading&quot; + data:blog.mobileClass'>

Y debajo de cualquiera de las dos agrega esto:
<div id='contenedor-nieve'>

Por ?ltimo busca la etiqueta </body> y arriba de ella agrega:
</div>
Guarda los cambios y listo.

Como puedes apreciar es un m�todo sencillo, f?cil de instalar, no obstruye el contenido del blog, y lo mejor es que no tiene nada de scripts, s?lo bondades del CSS y nada m?s.

Si prefieres un m�todo que no sea en el fondo del blog sino encima de �l, y que funcione en todos los navegadores entonces estas dos opciones podr?n servirte:
Nieve en el blog que se acumula al final de la p?gina
Nieve en el blog