Mostrando entradas con la etiqueta CSS. Mostrar todas las entradas
Mostrando entradas con la etiqueta CSS. Mostrar todas las entradas

jueves, 18 de julio de 2013

4 Estilos Diferentes para el Gadget de Entradas Populares

Blogger nos permite agregar fácilmente un widget de "Entradas populares" y que seleccionamos desde su lista de gadgets, al querer agregar uno desde el "Diseño" de nuestro Blog.



Este gadget, como su nombre lo indica, muestra cuáles son las entradas más visitadas del blog, y puedes configurarlo para mostrar los datos que quieras en cuatro combinaciones posibles:  (1) solo el titulo de la entrada, (2) imágenes miniaturas con el título, (3) el título de la entrada con un resumen, y (4) El título de la entrada, con una imagen miniatura y un resumen de la entrada.



Este es un elemento que no puede faltar en tu blog, ya que incita a tus usuarios a que naveguen en tu contenido, lo cual puede traducirse en mayores ganancias si es que estás monetizando tu blog, pues se generaría un aumento en el número de páginas visitas, y a su vez, puede despertar el interés para que un usuario se suscriba al blog, al ver contenido interesante, por mencionar algunos beneficios.



Ya antes había compartido contigo algunos estilos para este widget, pero, había publicado aquellos con los que era posible crear galerías horizontales con las imágenes. Pues hoy compartiré contigo 4 estilos personalizados para que puedas agregarlos al blog en unos sencillísimos pasos, y en este caso, los estilos están pensados para mostrar solo los títulos de las entradas y numerando cada entrada ;)




Pasos previos: Agregar el gadget, si no lo has hecho





  1. Selecciona la pestaña "Diseño" y agrega el gadget de "Entradas populares", en la sección de tu blog que deseas que aparezca, como por ejemplo en la columna lateral, haciendo click en "Añadir un gadget". 

  2. Configura el widget para que muestre solo el título de la entrada. Esto lo haces evitando activar las casillas: "Imagen en miniatura" y "fragmento", tal y como se muestra en la siguiente imagen. Por tu parte, configura el resto de las opciones.

    Opciones de configuración widget


  3. Una vez configurado el widget, guarda los cambios, haciendo click en Guardar, y después en guardar disposición.







Cómo agregar el CSS para crear el estilo en el widget de Entradas populares





  1. Elige el estilo de los cuatro que he preparado para ti, y copia el CSS que te facilito, y que aparece debajo de la imagen que muestra el estilo.

  2. Selecciona la pestaña "Plantilla" luego haces clik en Personalizar > Avanzado > Añadir CSS y ahí pegas el CSS del estilo que más te guste.




    Agregar CSS desde el diseñador de plantillas


  3. Una vez que agregues el CSS, guarda los cambios en "Aplicar al blog".




Y listo! ya habrás personalizado el widget de entradas populares, cuando éste solo muestra los títulos de las entradas.






Los estilos





A continuación, te facilito el CSS de cada estilo, solo elige el que más te guste y ponlo en tu blog.  Puedes ver cada uno de los estilos en acción en el siguiente blog de pruebas: http://nuevo-com.blogspot.com/



Estilo 1. Blue Ribbon


Widget de entradas populares personalizado





CSS

#PopularPosts1 h2{

position:relative;

right:-2px;

padding:8px 63px 6px 17px; /*Ajusta el valor coloreado de azul para extender el listón a la derecha*/

width:100%;

margin:0;

font-size:16px;

background:#3366FF;

color:#f2f2f2;

text-align:left;

text-indent:18px;

}

#PopularPosts1 h2:before{

position:absolute;

content:"";

top:33px;

right:0px;

width: 0px;

height: 0px;

border-bottom:12px outset transparent;

border-left:12px solid #003df5;

}

#PopularPosts1 h2:after{

position:absolute;

content:"";

top:-6px;

left:-5px;

width: 0px;

height: 0px;

border-bottom:24px outset transparent;

border-top:24px outset transparent;

border-left:24px solid #fff;

}

#PopularPosts1 ul{

list-style:none;

counter-reset:li;

padding:10px;

left:-8px;

width:100%;

}

#PopularPosts1 li{ /*Estilos de cada elemento*/

width:100%;

position:relative;

left:0;

margin:7px 0 16px 12px;

padding:10px  4px 0 5px;

}

#PopularPosts1 ul li:before{ /*Los estilos del Número*/

content:counter(li);

counter-increment:li;

position:absolute;

top:-2px;

left:-20px;

font-size:35px;

width:20px;

color:#777; /*Color de texto*/

}



#PopularPosts3 ul li a{

display:block;

font-size:14px;

color:#333;

text-decoration:none;

transition: all .2s ease-in-out;

}

#PopularPosts3 ul li a:hover{

color:#3366FF;

margin-left:3px;

}





Nota: En este caso tendrás que ajustar el valor del padding que he resaltado de azul para que el listón llegue hasta el extremo derecho tal y como la demo.



Estilo 2. Black Ribbon




Widget de entradas populares personalizado

CSS

#PopularPosts2 h2{

position:relative;

padding:8px 10px 6px 10px;

width:100%;

margin:0;

font-size:16px;

background:black;

color:#f2f2f2/* Color del titulo widget */

text-align:center;

}

#PopularPosts2 h2:before{

position:absolute;

content:"";

top:-6px;

right:-5px;

width: 0px;

height: 0px;

border-bottom:24px outset transparent;

border-top:24px outset transparent;

border-right:24px solid #fff/*Color del triángulo igual que el fondo*/

}



#PopularPosts1 h2:after{

position:absolute;

content:"";

top:-7px;

left:-5px;

width: 0px;

height: 0px;

border-bottom:24px outset transparent;

border-top:24px outset transparent;

border-left:24px solid #fff; /*Color del triángulo igual que el fondo*/

}

#PopularPosts1 ul{

list-style:none;

counter-reset:li;

padding:10px;

left:-8px;

width:100%;

}

#PopularPosts1 li{ /*Estilos de cada elemento*/

width:100%;

position:relative;

left:0;

margin:0 0 1px 12px;

padding:4px 5px;

}

#PopularPosts1 ul li:before{ /*Los estilos del Número*/

content:counter(li);

counter-increment:li;

position:absolute;

top:2px;

left:-23px;

font-size:35px; /* Tamaño número */

width:20px;

color:#333; /*Color de texto*/

}

#PopularPosts1 ul li a{

display:block;

position:relative;

left:-30px;

width:100%;

margin:0;

padding: 9px 3px 10px 29px;

font-size:14px;

color:#333;

text-decoration:none;

transition: all .2s ease-in-out;

}

#PopularPosts1 ul li a:hover{

color:#3366ff;

margin-left:3px;

}





Estilo 3. Metro




Widget de entradas populares personalizado

CSS



#PopularPosts4 h2{

padding:8px 10px 3px 0;

width:100%;

margin:0;

font-size:16px;

position:relative;

left:-20px;

display:block;

border-bottom:2px solid #ddd;

}

#PopularPosts4 ul{

list-style:none;

counter-reset:li;

padding:10px;

width:100%;

}

#PopularPosts4 li{ /*Estilos de cada elemento*/

width:100%;

position:relative;

left:0;

margin:0 0 6px 10px;

padding:4px 5px;

}

#PopularPosts4 ul li:before{ /*Los estilos del Número*/

content:counter(li);

counter-increment:li;

position:absolute;

top:3px;

left:-39px;

font-size:21px;

width:28px;

height:28px;

border-radius: 50%;

color:#777; /* Color de texto */

border: 2px solid #ddd/* Color de borde círculo */

padding:0;

text-indent:9px;

}

#PopularPosts4 ul li a{

display:block;

position:relative;

left:-45px;

width:100%;

margin:0;

min-height:28px;

padding: 5px 3px 3px 39px;

color:#333;

text-decoration:none;

font-size:14px/* Tamaño fuente de enlace */

}

#PopularPosts4 ul li a:hover{

color:#3366ff;

margin-left:3px;

}







Estilo 4.  Boxy


Widget de entradas populares personalizado

CSS

#PopularPosts1 h2{

padding:7px 0 3px 0;

width:100%;

margin:0;

font-size:1.3em;

text-indent:-12px;

font-size:19px;

text-align:center; /* Alineación texto título */

}

#PopularPosts1 ul{

list-style:none;

counter-reset:li;

padding:8px 0px 1px;

left:-8px;

width:290px;

}

#PopularPosts1 li{ /*Estilos de cada elemento*/

position:relative;

margin:0 0 10px 0;

padding: 3px 2px 0 7px;

left:-5px;

width:285px;

border:1px solid #ddd; /*Color de borde*/

}

#PopularPosts1 ul li:before{ /*Los estilos del Número*/

content:counter(li);

counter-increment:li;

position:absolute;

display:block;

top:-5px;

left:-5px;

font-size:18px;

width:14px;

margin:0 0 10px 0;

padding:4px 4px 4px 3px;

color:#333; /*Color de texto*/

text-align:left;

background:#e2e2e2; /*Color de fondo*/

text-indent:2px;

}

#PopularPosts1 ul li:after{

content:"";

position:absolute;

top:-5px;

left:15px;

width: 0px;

height: 0px;

border-top:5px outset transparent;

border-left:5px solid #aeaeae; /* color triangulo del número*/

}



#PopularPosts1 ul li a{

font-size:16px;

color:#777;

margin-left:17px;

display:block;

min-height:25px;

text-decoration:none;

padding:0 4px 3px 0;

}

#PopularPosts1 ul li:hover{

background:#f9f9f9;

border:1px solid #aaa;

}

#PopularPosts1 ul li a:hover{

color:#0174DF;



}







Notas Finales




  • Todo el CSS es válido. Solo hay que mencionar que, la numeración no es visible en Internet Explorer 7, ya que esa versión del navegador no soporta propiedades que hacen que la numeración aparezca. En el caso del estilo Metro (el 3), los círculos se ven cuadrados en IE8 y versiones anteriores ya que, dichas versiones no soporta una propiedad que hace que se creen los círculos.

  • Las fuentes se heredarán de la plantilla, ya que no han sido declaradas en el CSS.



Hasta la próxima ;)

martes, 23 de abril de 2013

El futuro y la propiedad @supports

Así como hace más de dos años, se mostraba el uso de una propiedad de CSS3 llamada @media que permite especificar las propiedades que tendrá nuestro sitio según sea el medio en el cual se mostrará y hoy se va generalizado a partir de la intención de muchos desarrolladores de tener diseños adaptables; esta otra, llamada @supports, es probable que pronto se convierta en una de esas cosas imprescindibles.

Por ahora, su uso práctico es limitado o nulo ya que sólo está soportado por Opera 12 y Firefox 17 e incluso en este último, sólo funciona si se coloca en TRUE el valor layout.css.supports-rule.enable en la configuración del navegador (about:config) pero, se espera que pronto sea algo corriente y Chrome dice que lo implementará a partir de la versión 24.

¿Para qué serviría esto? Para algo que el CSS aun es incapaz de manejar, detectar el navegador que se está utilizando de tal forma de poder condicionar el uso de determinadas reglas o propiedades.

La sintaxis sería.
@supports una_condición {
/* y aquí las reglas de estilo si la condición se cumple */
}
Por ejemplo, supongamos que quiero que una etiqueta tenga una animación que use @keyframes sólo si estas son soportadas y, caso contrario que no se vean:
#mi_animacion {display:none;} /* por defecto no lo muestro */
@supports (animation-name: un_ejemplo) {
/* y sólo se verá si el navegador soporta animaciones */
@keyframes un_ejemplo {
from {background-color:#000;border: 0px solid #444;}
to {background-color:#F00;border: 15px solid #FF0;}
}
#mi_animacion {
display:block;}
animation: un_ejemplo 1s infinite alternate;
}
}
En ese caso, sólo hay una condición pero puede haber varias y combinarse con OR y AND:
@supports (animation-name: un_ejemplo) or (-webkit-animation-name: un_ejemplo) {
/* las reglas se aplicarían en cualquiera de los dos casos */
}

@supports (animation-name: un_ejemplo) and (box-shadow: 1px 1px 5px #FFF) {
/* las reglas se aplicarían si ambas propiedades son reconocidas por el navegador */
}
O incluso, puede usarse el NOT para hacer lo contrario:
@supports not (display: flexbox) {
/* estas reglas se aplicarían si la propeidad no es reconocida por el navegador */
}
Si bien la condición debe tener un valor, este puede ser cualquiera y no es necesario que se utilice en las reglas de la condición así que, por ejemplo, esto sería válido (inútil pero válido):
@supports (background: red) {
body {background: white;}
}
Sí, ya sé, no tiene utilidad pero ... el tiempo pasa volando.

lunes, 22 de abril de 2013

Cómo obtener la primera imagen del post en Blogger sin Javascript

En Blogger hay una infinidad de etiquetas propias de la plataforma, entre las cuales existen las denominadas <data>. Estas tags nos permiten mostrar determinados elementos dentro de nuestro blog, y para nuestra ventaja podemos reubicarlas a nuestro antojo.

blogger thumbnail


Por ejemplo, si deseamos mostrar el contenido de la entrada, símplemente recurrirmos a <data:post.body/>, o bien si necesitamos mostrar el título de ésta, añadimos <data:post.title/> a nuestro código. Para no desviarnos del objetivo principal de esta entrada, no nos adentraremos con detalles sobre el uso de estas etiquetas.
 
En Blogger también podemos obtener la imagen en miniatura de la entrada, pero sólamente la obtendremos a un tamaño de 72 píxeles. La etiqueta que se encarga de ello es <data:post.thumbnailUrl/>, y devuelve una URL en el siguiente formato:

http://X.bp.blogspot.com/-XXXXXXXXXXXXXXXXXX/s72-C/nombre-imagen.png

El valor s72 en la URL indica que la imagen tendrá un tamaño de 72 píxeles, mientras que el valor -C indica que la imagen se mostrará cortada en forma de cuadrado.

Aquí viene el problema, si intentamos aumentar el tamaño de la imagen mediante CSS, debido a su baja resolución se verá pixelada.

La solución:
Si estás utilizando la combinación <data:post.snippet/> y <data:post.thumbnailUrl/> (Para obtener el resúmen y la imagen en miniatura correspondientes), puedes optar entonces por utilizar <data:post.firstImageUrl/>, la cual devolverá la primera imagen de la entrada en su tamaño real.

Para utilizarla bastaría con incluir el siguiente código en tu plantilla:

<img alt='alguna keyword' expr:src='data:post.firstImageUrl'/>

Por ejemplo, si quieres que las entradas del índice se vean como una tarjeta:

<b:if cond='data:blog.pageType == &quot;index&quot;'>
    <div class="entrada-indice">
        <a class="titulo-indice-post" expr:href="data:post.url">
           <data:post.title/>
       </a>
           <p class="resumen-post">
                <data:post.snippet/>
                <div style="clear:both" />
          </p>
     <img alt='thumb' class="miniatura" expr:src='data:post.firstImageUrl'/>
    </div>

<b:else/>
        <!-- Código original de la entrada, el cual se mostrará normalmente dentro de ellas y páginas estáticas -->
</b:if>

Lo que devolvería lo siguiente:

<div class="entrada-indice">
        <a class="titulo-indice-post" href="http://www.tublog.blogspot.com/2013/04/entrada.html">
          Soy el título de alguna entrada.
       </a>
           <p class="resumen-post">
                Soy un breve resúmen de la entrada que se muestra debajo de la imagen en miniatura.
                <div style="clear:both" />
          </p>
                <img alt='thumb' class="miniatura" src='URL-PRIMERA-IMAGEN'/>
    </div>

En el caso del ejemplo, los selectores CSS serían los siguientes:
.entrada-indice {
/*Atributos para cada entrada dentro del índice*/ 
}

.titulo-indice-post {
/*Atributos para el título de cada título*/ 
display:block; /*Para pasar el enlace de inline a block*/
}

.resumen-post {
/*Atributos para el contenedor del resumen*/
}

.miniatura {
/*Atributos para la imagen*/
}

Dentro de cada selector deberás añadir las propiedades que creas convenientes para tu plantilla.

Nota: No es necesario reconstruir la sección completa, bastaría con buscar algo parecido a esto si ya utilizas el sistema que se encuentra en Oloblogger:

<img expr:src='data:post.thumbnailUrl'/>

Por esto:

<img alt='alguna keyword' expr:src='data:post.firstImageUrl'/>

miércoles, 20 de marzo de 2013

Efecto hover desde distintas direcciones

Aunque me ha costado armarlo para que funcionara acá porque hay cosas que no termino de entender bien, la idea de crear efectos hover que muestren contenidos distintos según sea la dirección desde la cual se entra con el cursor, no deja de ser interesante.

Lo básico es empezar con el HTML que no es otra cosa que un DIV donde incluimos cuatro etiquetas SPAN con los textos y una imagen.
<div class=multi-hover>
<span>hover desde la derecha</span>
<span>hover desde arriba</span>
<span>hover desde la izquierda</span>
<span>hover desde abajo</span>
<img src="https://lh5.googleusercontent.com/-RAUoNEersrc/UGt18u6HXyI/AAAAAAAACwo/QWa2I1zG7Y0/s400/24_0144.jpg">
</div>
Si se usa en una entrada de Blogger, habrá que tener en cuenta que todo debe ser escrito en una sola línea para evitar los saltos (etiquetas BR) que se agregan por defecto.

El resultado sería esto:

hover desde la derechahover desde arribahover desde la izquierdahover desde abajo

Y el CSS:
<style>

/* el contenedor y la imagen */
div.multi-hover {
overflow: hidden;
position: relative;
vertical-align: middle;
width: 100%;
/* tuve que establecer la altura para que los textos se centraran verticalmente */
height: 358px;
line-height: 358px;
}
div.multi-hover img {width: 100%;}

/* los textos que, por defecto, permanecerán ocultos */
div.multi-hover span {
color: #FFF;
font-size: 32px;
height: 100%;
opacity: 0;
position: absolute;
text-align: center;
transition: all 0.3s linear 0s; /* agregar los prefijos para cada navegador */
width: 100%;
}

/* y esto es lo que generará el efecto */

div.multi-hover span:nth-child(1) { /* desde la derecha */
background: none repeat scroll 0 0 rgba(216, 38, 38, 0.6);
left: 90%;
top: 0;
}
div.multi-hover span:nth-child(2) { /* desde arriba */
background: none repeat scroll 0 0 rgba(127, 216, 38, 0.6);
left: 0;
top: -80%;
}
div.multi-hover span:nth-child(3) { /* desde la izquierda */
background: none repeat scroll 0 0 rgba(38, 216, 216, 0.6);
left: -90%;
top: 0;
}
div.multi-hover span:nth-child(4) { /* desde abajo */
background: none repeat scroll 0 0 rgba(127, 38, 216, 0.6);
left: 0;
top: 80%;
}

/* los hacemos visibles ... */
div.multi-hover span:hover {opacity: 1;}

/* ... moviéndolos horizontalmente ... */
div.multi-hover span:nth-child(2n+1):hover {left: 0;}
/* ... o verticalmente ... */
div.multi-hover span:nth-child(2n):hover {top: 0;}

</style>
Para probar si los valors que colocamos son correctos, lo que conviene es poner opacity: 1; en la regla div.multi-hover span {} y ver el resultado. En este caso, debería verse algo así:


Al dejarlos "visibles", podemos ver como los SPAN se superponen un poco en la imagen que es, justamente, la forma en que serán detectados por el hover. De ese modo, una vez que los hayamos ubicado, tenemos listo el efecto y podemos ocultarlos definitivamente.

REFERENCIAS:demosthenes.info

domingo, 10 de marzo de 2013

blockquote o citas sencillas con CSS3

La etiqueta blockquote es esa que se suele utilizar para mostrar citas textuales y diferenciarlas del resto de los textos de una página y, a veces, se combina con una segunda etiqueta llamada cite que es una referencia al autor o al origen de dicha cita.

Ambas, tienen propiedades por defecto en cualquier navegador pero hay cientos de formas de personalizarlas agregándoles estilos; esta es una forma muy sencilla de hacerlo, utilizando las ventajas del CSS3.

Vestibulum a lectus libero, congue ultricies metus. Curabitur nisi dolor, tristique vel lacinia vitae, mattis sed risus. Morbi dignissim feugiat nulla vel vulputate. Ut scelerisque semper eros, vitae vestibulum nibh bibendum ac. Proin eget imperdiet nulla. Nulla hendrerit augue non sapien vestibulum id feugiat massa adipiscing? Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

Vivamus ut nisi ante. Phasellus eget odio vel nulla ullamcorper lobortis quis sed nulla. Fusce varius erat non quam tincidunt blandit. Sed venenatis; purus quis hendrerit iaculis, ipsum ante lobortis est, at suscipit erat mi non ipsum. Nunc dictum congue sapien, laoreet tempus augue pharetra a. Morbi enim risus, placerat eget vulputate ac, venenatis vel mi. In venenatis sodales lectus! Quisque a massa a velit blandit ultrices.
el nombre del autor

<style>
blockquote.purocss {
color: #888;
font-family: Georgia,serif;
font-size: 18px;
font-style: italic;
line-height: 1.3;
margin: 20px auto;
padding: 0.25em 40px;
position: relative;
width: 500px;
}
blockquote.purocss:before {
color: #CCC;
content: "\201C";
display: block;
font-size: 80px;
left: -5px;
position: absolute;
top: -15px;
}
blockquote.purocss cite {
color: #CCC;
display: block;
font-size: 18px;
margin-top: 15px;
text-align: right;
}
blockquote.purocss cite:before {
content: "\2014 \2009";
}
</style>

<blockquote class="purocss">
....... el texto .......
<cite>el nombre del autor</cite>
</blockquote>

martes, 26 de febrero de 2013

Eventos click y CSS

Un evento es eso que ocurre ... cuando hacemos algo. En CSS, el más común es el hover; ponemos el cursor encima de una etiqueta y, automáticamente, se ejecuta el evento<. No es algo controlable, se ejecuta siempre y, que lo usemos o no, es otra historia. Bueno, en realidad, hay una forma de eludirlo ya que en los navegadores modernos hay una propiedad llamada pointer-events que nos permite deshabilitarlos. Por ejemplo si tuviéramos un enlace al que le adosamos esa propiedad, simplemente, no funcionaría:
<a href="url_pagina" style="pointer-events: none;"> click acá </a>

Si bien :hover es el más común, no es el único pero, no existe ninguno que reaccione ante un click. El CSS, por alguna razón, jamás ha tenido algo semejante y ese tipo de acciones sólo pueden hacerse con JavaScript.

Sin embargo, hay algunas alternativas; ninguna de ellas es perfecta pero, por ahora, no hay muchas más. La mayoría utiliza :target para que funcione, algo que se ve bien en un demo sencillo pero, en cuanto lo queremos aplicar es poco funcional ya que en una página completa ... se "moverá", cambiando la url:
<style>
#democlick1 {display: none;}
#democlick1:target {display: block;}
</style>

<a href="#democlick1">demo con target</a>

<div id="democlick1">
....... cualquier contenido .......
</div>

Morbi ac nunc quis nisi tincidunt mattis eu gravida libero. Cras risus dui, scelerisque non fringilla eu; bibendum nec eros! Sed sed libero sed quam cursus adipiscing id non nisl. Praesent nisl turpis, sollicitudin eget placerat at, malesuada vitae ligula? Aenean est felis, fermentum non condimentum nec, consequat et nisl. Vivamus ultrices ligula at augue pulvinar adipiscing a vitae risus. Vivamus fermentum libero eget mi cursus condimentum vel nec neque? Praesent quis metus.


Otra alternativa es utilizar :focus; en este caso, al hacer click, se expandirá el contenido oculto.
<style>
.democlick2 {display: none;}
span:focus ~ .democlick2 {display: block;}
</style>

<span tabindex="0">demo con focus</span>
<div class="democlick2">
....... cualquier contenido .......
</div>
Tiene dos ventajas con respecto al anterior, por un lado, la página se queda quieta y, podemos aplicarlo a una clase lo que nos permite poner varios sin necesidad de identificarlos pero ... tiene dos desventajas; para volverlo a cerrar, debemos hacer click en cualquier parte "afuera" y además, el contenido oculto debe estar inmediatamente después, sin etiquetas intermedias:

demo con focus
Morbi ac nunc quis nisi tincidunt mattis eu gravida libero. Cras risus dui, scelerisque non fringilla eu; bibendum nec eros! Sed sed libero sed quam cursus adipiscing id non nisl. Praesent nisl turpis, sollicitudin eget placerat at, malesuada vitae ligula? Aenean est felis, fermentum non condimentum nec, consequat et nisl. Vivamus ultrices ligula at augue pulvinar adipiscing a vitae risus. Vivamus fermentum libero eget mi cursus condimentum vel nec neque? Praesent quis metus.

otro demo con focus
....... otro distinto .......

El último método es mas sofisticado y requiere más etiquetas pero es el que funciona mejor ya que nos permite generar un efecto toggle, es decir, click y expandir y click contraer. En este caso, se usa :checked:
<style>
.democlick3 {display: none;}
:checked ~ .democlick3 {display: block;}
input.oculto[type=checkbox] {position: absolute;left: -999em;}
</style>

<label for="toggle-oculto1">demo con checked</label>
<input type="checkbox" id="toggle-oculto1" class="oculto" />
<div class="democlick3">
....... cualquier contenido .......
</div>

Morbi ac nunc quis nisi tincidunt mattis eu gravida libero. Cras risus dui, scelerisque non fringilla eu; bibendum nec eros! Sed sed libero sed quam cursus adipiscing id non nisl. Praesent nisl turpis, sollicitudin eget placerat at, malesuada vitae ligula? Aenean est felis, fermentum non condimentum nec, consequat et nisl. Vivamus ultrices ligula at augue pulvinar adipiscing a vitae risus. Vivamus fermentum libero eget mi cursus condimentum vel nec neque? Praesent quis metus.

REFERENCIAS:vanseo design

lunes, 28 de enero de 2013

One div: Iconos utilzando sólo CSS

One div es un sitio donde podemos buscar y copiar el código necesario para utilizar íconos o símbolos creados exclusivamente con CSS; una técnica cuyo uso se va va extendiendo ya que tiene la ventaja de no utilizar imágenes y de ser flexibles porque podemos variar su tamaño con sencillez sin que se deformen.

Además, basta un poco de imaginación para aprovechar las distintas propiedades, cambiar colores, agregar animaciones o utilizar efectos aunque, claro está, como todas estas cosas, la compatibilidad con los distintos navegadores es una limitación importante pero, poco a poco, es algo que deberíamos dejar de lado y empezar a aceptar que esas limitaciones existirán siempre y que nada es universal excepto que 2+2=4.

Algunos ejemplos:

<style>
.mug_animate {
box-shadow: 0 -3em 0 0 #0AF inset;
height: 2.5em;
position: relative;
-moz-transition: all 1000ms linear 0s;
-webkit-transition: all 1000ms linear 0s;
-o-transition: all 1000ms linear 0s;
-ms-transition: all 1000ms linear 0s;
transition: all 1000ms linear 0s;
width: 1.5em;
}
.mug_animate:after {
border-color: #DDD transparent #DDD #DDD;
border-image: none;
border-radius: 0.75em 0 0 0.75em;
border-style: solid none solid solid;
border-width: 0.25em medium 0.25em 0.25em;
content: "";
height: 1.5em;
left: -1em;
position: absolute;
top: 0.25em;
width: 0.75em;
}
.mug_animate:before {
border: 0.25em solid #DDD;
border-radius: 0 0 0.2em 0.2em;
content: "";
height: 2.5em;
left: -0.20em;
position: absolute;
top: -0.5em;
width: 1.5em;
}
.mug_animate:hover {
box-shadow: 0 0 0 0 #00F inset;
}
</style>

<div class="mug_animate"></div>


<style>
.fir {
box-shadow: 0em 0.9em 0 -0.8em #4D4,0em 1em 0 -0.8em #4D4,0em 1.1em 0 -0.8em #4D4,0em 1.2em 0 -0.8em #4D4;
border-bottom: 1.7em solid #4D4;
border-left: 1em solid transparent;
border-right: 1em solid transparent;
font-size: 20px;
height: 0em;
position: relative;
width: 0em;
}

.fir:before {
border-bottom: 1em solid #4D4;
border-left: 0.7em solid transparent;
border-right: 0.7em solid transparent;
content: '';
display: block;
height: 0em;
left: -0.7em;
position: absolute;
top: -0.2em;
width: 0em;
}

.fir::after {
border-bottom: 0.7em solid #4D4;
border-left: 0.5em solid transparent;
border-right: 0.5em solid transparent;
content: '';
display: block;
height: 0em;
left: -0.5em;
position: absolute;
top: -0.5em;
width: 0em;
}
</style>

<div class="fir"></div>


<style>
.pacman {
background-image: -webkit-radial-gradient(1.75em .75em, circle, transparent 10%, #EE0 10%);
background-image: -moz-radial-gradient(1.75em .75em, circle, transparent 10%, #EE0 10%);
background-image: -o-radial-gradient(1.75em .75em, circle, transparent 10%, #EE0 10%);
background-image: -ms-radial-gradient(1.75em .75em, circle, transparent 10%, #EE0 10%);
background-image: radial-gradient(1.75em .75em, circle, transparent 10%, #EE0 10%);
border-radius: 3em 3em 0 0;
height: 1.5em;
position: relative;
-moz-transform: rotate(-45deg);
-webkit-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
transform: rotate(-45deg);
width: 3em;
}

.pacman:after {
background-color: #EE0;
border-radius: 0 0 3em 0;
content: '';
height: 1.5em;
left: 0em;
position: absolute;
top: 1.45em;
-moz-transform: rotate(90deg);
-webkit-transform: rotate(90deg);
-o-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
width: 1.5em;
}
</style>

<div class="pacman"></div>


sábado, 26 de enero de 2013

Añadir un ícono a cada una de las etiquetas de Blogger

Hace algún tiempo atrás vimos la manera de personalizar las etiquetas de las entradas de Blogger mediante CSS, y en otros blogs como Ciudad Blogger se ha visto la forma de incluir un ícono en las etiquetas, pero de manera grupal añadiendo una imagen al final de cada enlace.

Gracias a las condicionales en Blogger añadiremos un ícono pero a cada etiqueta de manera distinta, es decir que si la categoría es de música, entonces el ícono que aparecerá a su lado será un instrumento musical, una nota, etc.

blogger,tags

Cómo añadir un ícono a las etiquetas del gadget de Blogger:

Paso 1: Añadiendo el gadget de etiquetas modificado:

Este paso es un poco más complicado debido a que necesitas ubicar correctamente el <b:section>. Para ello, deberás buscar una línea muy similar a esta (Búscala sin expandir los artilugios para que sea más sencillo):
<b:section class='sidebar' id='sidebar-wrapper' showaddelement='yes'/>

Recuerda que muy dificilmente la encontrarás idéntica a ésta, deberás fijarte en buscar el <b:section> con el atributo class='sidebar' (En caso de estar el gadget en la columna lateral del blog).

Si ya tienes un gadget de etiquetas dentro de esta sección, entonces deberás suprimirlo, bastaría con buscar un código similar a éste, obviamente se encontrará en el <b:section> que hayamos identificado anteriormente:
<b:widget id='Label1' locked='false' title='Etiquetas' type='Label'/>

Este código lleva un atributo title, el cual corresponde al título del gadget. Si tu gadget lleva como título "Categorías" u otra cosa entonces deberás fijarte que el gadget lo lleve en éste atributo, o de lo contrario estarás suprimiendo otro en caso de tener varios.

Si ya lograste identificar el gadget, entonces deberás reemplazarlo por este código:

<b:widget id='Label99' locked='false' title='Etiquetas' type='Label'>
    <b:includable id='main'><div id="gadget-etiquetas">
            <h2><data:title/></h2>
        <ul>
            <b:loop values='data:labels' var='label'>
                <li expr:class='data:label.name'>
                    <b:if cond='data:blog.url == data:label.url'>
                        <span expr:dir='data:blog.languageDirection'><data:label.name/></span>
                    <b:else/>
                        <a expr:dir='data:blog.languageDirection' expr:href='data:label.url'><data:label.name/></a>
                    </b:if>
                </li>
            </b:loop>
        </ul>
    </div></b:includable>
</b:widget>

Previsualiza los cambios y si no hay ningún inconveniente procedes a guardar la plantilla.

Nota: Te preguntará si deseas suprimir el gadget, deberás aceptar dicha modificación.

Paso 2: Añadir CSS en cada etiqueta:

Una vez que ya hayas realizado el paso anterior, deberás pegar el siguiente código antes de ]]></b:skin>:
#gadget-etiquetas ul {
margin:0;
font-family:tahoma;
}

#gadget-etiquetas a {
color:#777;
cursor:pointer;
}

#gadget-etiquetas li[class="Etiqueta uno"] {
list-style-image:url(URL-IMAGEN);
}
#gadget-etiquetas li[class="Etiqueta dos"] {
list-style-image:url(URL-IMAGEN);
}
#gadget-etiquetas li[class="Etiqueta tres"] {
list-style-image:url(URL-IMAGEN);
}
#gadget-etiquetas li[class="Etiqueta cuatro"] {
list-style-image:url(URL-IMAGEN);
}
#gadget-etiquetas li[class="Etiqueta cinco"] {
list-style-image:url(URL-IMAGEN);
}
#gadget-etiquetas li[class="Etiqueta seis"] {
list-style-image:url(URL-IMAGEN);
}
#gadget-etiquetas li[class="Etiqueta siete"] {
list-style-image:url(URL-IMAGEN);
}
#gadget-etiquetas li[class="Etiqueta ocho"] {
list-style-image:url(URL-IMAGEN);
}
#gadget-etiquetas li[class="Etiqueta nueve"] {
list-style-image:url(URL-IMAGEN);
}
#gadget-etiquetas li[class="Etiqueta diez"] {
list-style-image:url(URL-IMAGEN);
}

Deberás reemplazar el nombre etiqueta-XXXX por la etiqueta que corresponda (Respetando mayúsculas, tíldes, separaciones, etc), junto con añadir un ícono en el atributo list-style-image. Observa un ejemplo:

#gadget-etiquetas ul {
margin:0;
font-family:tahoma;
}

#gadget-etiquetas a {
color:#777;
cursor:pointer;
}

#gadget-etiquetas li[class="Música"] {
list-style-image:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdJtbhUv4hxYCWDHwtzfkm_uVDwGaQh0kTgVi1fc4TbH_EjqllRqcLeHgM1d_-xNMJl5iGi-vebDNuA8auCqGlxHZsTc2C144W_U3fMkB_TbPBB8f5Hh9ufFGDv06AlAEHi8rUoDN6gyc/s1600/music-icon.png) !important;
}
#gadget-etiquetas li[class="Arte"] {
list-style-image:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbpBStn9FwqqCyoMft_P9_WksyEM_9a3XGVr2rPBBiIuuOpmBDHDLd1_n2mocNaesjpawMb8LnnsYnIGSpusYLTBCo5BN94_QLhHwR2PdcGn3yQv3xiLRwA3_RPlapWeC-VMbZ_NZq2Cs/s1600/art_icon.png);
}

#gadget-etiquetas li[class="Vídeos"] {
list-style-image:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-5UeZ3Xs_v3bpcRdZFNT1usQgIw7eellNugfilUfUIvKFQRnTe1xsXkEvlL8apAYkupZEZM-uCXzLcAHhg_QYq4_lPSJ-EkqGyl7QcZnX1qH0mpYzQijySXirkaeM1Ryd_0wZDi0V6AY/s1600/video_icon.gif);
}
#gadget-etiquetas li[class="Fotografías"] {
list-style-image:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipa8rqVtdTKkiXGX2-dZBf-P3MkvLuRvPNgwkiywtpuKUR-wZupfxVnMMTplNehHHOVAwdAQq0caGCKSLcVVQd709x4sK8hmxIHO-HhWpbL1Ylc-0MozdpAuZXL9iWFGARl5gorXablZw/s1600/url.png);
}

El resultado será muy similar a este:



Cómo añadir un ícono a las etiquetas de las entradas:

Paso 1: Reemplazar las etiquetas por defecto:

Lo primero que debes hacer en este caso, es buscar el siguiente código dentro de tu plantilla (Con las plantillas de artilugios expandidas):
<span class='post-labels'>
<!--
Este contenido, junto a la etiqueta span deberá suprimirse
-->
</span>

Deberás reemplazarlo con este código:
<div class='post-labels'>
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<div class='labels'>
<b:loop values='data:post.labels' var='label'>
<a expr:class='data:label.name' expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != "true"'></b:if>
</b:loop>
</div>
</b:if>
</div>

Si no lo encuentras, y si en tus entradas no aparecen las etiquetas, puedes añadirlo justo debajo de:
<data:post.body/>

Paso 2: Aplicando CSS a las etiquetas:

Debido a que ya no manipulamos viñetas como lo hicimos en el método de los gadgets, tendremos que hacerlo levemente distinto. Copia y pega el siguiente código antes de ]]></b:skin>:
.post-labels {
margin:20px 0 10px 0;
padding:10px;
}

.post-labels a {
display:inline-block;
padding-left:20px;
margin: 0 8px 0;
}

.post-labels a[class="Etiqueta uno"] {
background:url(URL-ICONO) no-repeat left;
}

.post-labels a[class="Etiqueta dos"] {
background:url(URL-ICONO) no-repeat left;
}

.post-labels a[class="Etiqueta tres"] {
background:url(URL-ICONO) no-repeat left;
}

.post-labels a[class="Etiqueta cuatro"] {
background:url(URL-ICONO) no-repeat left;
}

.post-labels a[class="Etiqueta cinco"] {
background:url(URL-ICONO) no-repeat left;
}

.post-labels a[class="Etiqueta seis"] {
background:url(URL-ICONO) no-repeat left;
}

.post-labels a[class="Etiqueta siete"] {
background:url(URL-ICONO) no-repeat left;
}

.post-labels a[class="Etiqueta ocho"] {
background:url(URL-ICONO) no-repeat left;
}

.post-labels a[class="Etiqueta nueve"] {
background:url(URL-ICONO) no-repeat left;
}

.post-labels a[class="Etiqueta diez"] {
background:url(URL-ICONO) no-repeat left;
}



Recuerda reemplazar etiqueta-XXXX por la etiqueta que corresponda (Respetando mayúsculas, tíldes, etc), junto con añadir un ícono en el atributo background. Observa un ejemplo:
.post-labels {
margin:20px 0 10px 0;
padding:10px;
}

.post-labels a {
display:inline-block;
padding-left:20px;
margin: 0 8px 0;
}

.post-labels a[class="Música"] {
background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdJtbhUv4hxYCWDHwtzfkm_uVDwGaQh0kTgVi1fc4TbH_EjqllRqcLeHgM1d_-xNMJl5iGi-vebDNuA8auCqGlxHZsTc2C144W_U3fMkB_TbPBB8f5Hh9ufFGDv06AlAEHi8rUoDN6gyc/s1600/music-icon.png) no-repeat left;
}
.post-labels a[class="Arte"] {
background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbpBStn9FwqqCyoMft_P9_WksyEM_9a3XGVr2rPBBiIuuOpmBDHDLd1_n2mocNaesjpawMb8LnnsYnIGSpusYLTBCo5BN94_QLhHwR2PdcGn3yQv3xiLRwA3_RPlapWeC-VMbZ_NZq2Cs/s1600/art_icon.png) no-repeat left;
}

.post-labels a[class="Vídeos"] {
background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-5UeZ3Xs_v3bpcRdZFNT1usQgIw7eellNugfilUfUIvKFQRnTe1xsXkEvlL8apAYkupZEZM-uCXzLcAHhg_QYq4_lPSJ-EkqGyl7QcZnX1qH0mpYzQijySXirkaeM1Ryd_0wZDi0V6AY/s1600/video_icon.gif) no-repeat left;
}
.post-labels a[class="Fotografías"] {
background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipa8rqVtdTKkiXGX2-dZBf-P3MkvLuRvPNgwkiywtpuKUR-wZupfxVnMMTplNehHHOVAwdAQq0caGCKSLcVVQd709x4sK8hmxIHO-HhWpbL1Ylc-0MozdpAuZXL9iWFGARl5gorXablZw/s1600/url.png) no-repeat left;
}

El resultado:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut odio. Nam sed est. Nam a risus et est iaculis adipiscing. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer ut justo. In tincidunt viverra nisl. Donec dictum malesuada magna. Curabitur id nibh auctor tellus adipiscing pharetra. Fusce vel justo non orci semper feugiat. Cras eu leo at purus ultrices tristique.



Actualización: Se han reemplazado los selectores de clases por selectores de atributos para que puedan reconocerse etiquetas de 2 palabras o más.

lunes, 7 de enero de 2013

Caracteres "raros" en scripts y CSS

A veces, cuando se usan scripts, debemos escribir caracteres especiales como acentos y estos no se ven bien o aparece un signo de interrogación u otros símbolos raros. Por lo general, esto se resuelve si la codificación de caracteres es correcta pero lo lógico no siempre funciona.

En Blogger, los caracteres especiales suelen verse bien por lo que ese problema es difícil que se nos presente pero, cuando se trata de otros servicios, de archivos externos, las cosas pueden complicarse, sobre todo si queremos emplear caracteres especiales [1 2]

Por ejemplo, esto, suele verse bien y al hacer click en este enlace, se verán las letras de modo correcto:
alert(" á é í ó ú  ☺ ❤ ✛ ");
Si no es así y quiero usar caracteres de ese tipo, lo que debo hacer es escribirlos en un formato especial, las llamadas cadenas de escape que no son otra cosa que una barra invertida seguida de una letra y un número en formato hexadecimal. En el caso de los acentos o caracteres comunes, sería \x más el código Unicode de dos dígitos:

\xe1 es la letra á
\xe9 es la letra é
\xed es la letra í
\xf3 es la letra ó
\xfa es la letra ú

Algunas combinaciones generan caracteres especiales:

\n es un salto de linea
\t es una tabulación
\' es la forma de escribir comillas simples
\" es la forma de escribir comillas dobles
\\ es una barra invertida

De manera más genérica, podemos usar \u más el código Unicode en formato hexadecimal (cuatro dígitos):

\u00e1 es la letra á
\u00e9 es la letra é
\u00ed es la letra í
\u00f3 es la letra ó
\u00fa es la letra ú

lo que nos permitirá ver correctamente eso que antes no se podía:
alert(" \u263a \u2764 \u271b ");
En esta página, hay una lista muy completa de todos los caracteres, tanto símbolos como distintos alfabetos.

Aunque en el CSS no suelen usarse caracteres raros, hay un caso en que también son necesarios, cuando se utiliza la propiedad content junto con :after y :before

Allí, se usa el mismo criterio aunque sólo es necesario agregar la barra invertida seguida de los cuatro dígitos del código hexadecimal. Por ejemplo:
content: ":\24d1\24d4\24d5\24de\24e1\24d4";

content: ":after \263a \2724 \2602";
:after ☺ ✤ ☂
:ⓑⓔⓕⓞⓡⓔ

jueves, 3 de enero de 2013

Wiggle: Hipnosis y CSS

Antes que nadie pregunte: No, esto no tiene ninguna utilidad práctica. No incrementará las visitas, no agregará enlaces entrantes, no hará que un sitio se posicione primero en Google, tenga 456 tweets en 5 minutos ni conseguirá subir los clicks de Adsense para que podamos comprarnos esa isla en las Bahamas. Simplemente es ... un experimento sin consecuencias.

Y para colmo ... largo de escribir:

<style>
/* agregar los prefijos necesarios en las propiedades para que funcione en distintos navegadores */
@keyframes wiggle {
0% {transform: rotate( -10deg );}
100% {transform: rotate( 10deg );}
}
div#wiggle {
left: 50%;
position: absolute;
top: 50%;
}
div#wiggle b {
display: block;
border-radius: 5%;
position: absolute;
transform: rotate(-10deg);
}
div#wiggle b:nth-child(1) {
width: 20px;
height: 20px;
left: -10px;
top: -10px;
box-shadow: 0 0 2px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 50ms infinite alternate;
}
div#wiggle b:nth-child(2) {
width: 40px;
height: 40px;
left: -20px;
top: -20px;
box-shadow: 0 0 4px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 100ms infinite alternate;
}
div#wiggle b:nth-child(3) {
width: 60px;
height: 60px;
left: -30px;
top: -30px;
box-shadow: 0 0 6px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 150ms infinite alternate;
}
div#wiggle b:nth-child(4) {
width: 80px;
height: 80px;
left: -40px;
top: -40px;
box-shadow: 0 0 8px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 200ms infinite alternate;
}
div#wiggle b:nth-child(5) {
width: 100px;
height: 100px;
left: -50px;
top: -50px;
box-shadow: 0 0 10px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 250ms infinite alternate;
}
div#wiggle b:nth-child(6) {
width: 120px;
height: 120px;
left: -60px;
top: -60px;
box-shadow: 0 0 12px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 300ms infinite alternate;
}
div#wiggle b:nth-child(7) {
width: 140px;
height: 140px;
left: -70px;
top: -70px;
box-shadow: 0 0 14px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 350ms infinite alternate;
}
div#wiggle b:nth-child(8) {
width: 160px;
height: 160px;
left: -80px;
top: -80px;
box-shadow: 0 0 16px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 400ms infinite alternate;
}
div#wiggle b:nth-child(9) {
width: 180px;
height: 180px;
left: -90px;
top: -90px;
box-shadow: 0 0 18px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 450ms infinite alternate;
}
div#wiggle b:nth-child(10) {
width: 200px;
height: 200px;
left: -100px;
top: -100px;
box-shadow: 0 0 20px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 500ms infinite alternate;
}
div#wiggle b:nth-child(11) {
width: 220px;
height: 220px;
left: -110px;
top: -110px;
box-shadow: 0 0 22px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 550ms infinite alternate;
}
div#wiggle b:nth-child(12) {
width: 240px;
height: 240px;
left: -120px;
top: -120px;
box-shadow: 0 0 24px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 600ms infinite alternate;
}
div#wiggle b:nth-child(13) {
width: 260px;
height: 260px;
left: -130px;
top: -130px;
box-shadow: 0 0 26px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 650ms infinite alternate;
}
div#wiggle b:nth-child(14) {
width: 280px;
height: 280px;
left: -140px;
top: -140px;
box-shadow: 0 0 28px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 700ms infinite alternate;
}
div#wiggle b:nth-child(15) {
width: 300px;
height: 300px;
left: -150px;
top: -150px;
box-shadow: 0 0 30px rgba(255, 255, 255, 0.9);
animation: wiggle 0.4s cubic-bezier(0.445, 0.05, 0.55, 0.95) 750ms infinite alternate;
}
</style>

<div id="wiggle">
<b></b><b></b><b></b><b></b><b></b><b></b><b></b><b></b><b></b><b></b><b></b><b></b><b></b><b></b><b></b>
</div>


REFERENCIAS:codepen.io

jueves, 27 de diciembre de 2012

Personalizar las Listas Numeradas en los Posts + 3 Ejemplos

Desde el panel de edición de entradas de Blogger, es posible crear listas numeradas usando la herramienta "Lista numerada".




herramienta de lista numerada del editor de entradas



Una lista numerada se consigue gracias al código HTML de una "lista ordenada". Tú no tienes que preocuparte por agregar el código HTML, ya que el editor lo hace por ti al usar dicha herramienta. Si vas a la edición de HTML de la entrada, verás que la lista que creaste aparece de éste modo:


   <ol>

<li>El contenido del 1er. elemento</li>

<li>El contenido del 2do. elemento</li>

<li>El contenido del 3er. elemento</li>

<li>El contenido del 4to. elemento</li>

    etc...

  </ol>

Esta herramienta, va numerando de forma automática cada elemento de la lista llevando un "orden", de ahí se deriva el nombre de "listas ordenadas en HTML". En cada elemento se va generando un número de forma sucesiva (de 1 en adelante), aunque tú no lo puedas ver en el código HTML.




Usos de las listas ordenadas en los posts




Crear listas numeradas, es muy conveniente para numerar cualquier tipo de instrucciones.  Es ideal para blogs de cocina donde se numeran los pasos a seguir en una receta, o bien, en aquellos blogs que comparten tutoriales, aunque puede usarse en cualquier blog que necesite numerar cualquier cosa.



Por defecto, al usar ésta herramienta, los elementos numerados se verán  así:







Sin embargo, podemos personalizar los elementos de la lista, con CSS. Para conseguirlo, nos apoyaremos de éste interesante tutorial de 456 Berea ST, que explica una técnica en donde usando algunas propiedades claves de CSS, lograremos personalizar tanto los números de cada elemento de la lista, como el contenido de cada elemento.



El truco básicamente consiste en anular la numeración por defecto con: "list-style:none", y luego, usar propiedades de numeración automática:"counter-reset" y "counter-increment". Luego con la propiedad "content" se agrega el índice del contador que se crea usando las dos anteriores propiedades.




Ejemplos





Estos son tres ejemplos que he preparado para que puedas usar en tu blog para personalizar las listas numeradas y si alguna te gusta, sólo bastará con copiar el código CSS y pegarlo yendo a Plantilla > Personalizar > Avanzado > Añadir CSS. Por supuesto puedes personalizar los colores de fondos, bordes, etc.





Estilo 1.  


lista numerada 1



CSS


.post-outer ol{

counter-reset:li;

margin-left:0;

padding-left:0

}

.post ol li{ /*Estilos de cada elemento*/

position:relative;

margin:0 0 20px 2em !important;

padding:4px 8px !important;

list-style:none;

*list-style: decimal;

border:1px solid #e2e3e2; /*Color de borde*/

background:#f2f2f2; /*Color de fondo*/

text-indent:10px;

}

.post ol li:before{ /*Los estilos del Número*/

content:counter(li);

counter-increment:li;

position:absolute;

top:-5px;

left:-5px;

font-family:'Oswald', serif;

font-size:14px;

width:12px;

margin:0 0 10px 0;

padding:4px !important;

color:#727272; /*Color de texto*/

text-align:left;

background:#e2e2e2; /*Color de fondo*/

text-indent:2px

}

.post ol li:after{

content:"";

position:absolute;

top:-5px;

left:14px;

width: 0px;

height: 0px;

border-style: solid;

border-width: 5px 0 0 5px;

border-color: transparent transparent transparent #aeaeae; /*color del triangulito*/

}



Estilo 2.


Lista numerada 3

CSS




.post-outer ol{

 counter-reset:li;

 margin-left:0;

 padding-left:0

}

.post ol li{

 position:relative;    

 margin:0 0 20px 2em !important;

 padding:4px 8px !important;

 list-style:none;

 *list-style: decimal;

}

.post ol li:before{

 content:counter(li);

 counter-increment:li;

 position:absolute;

 top:-8px;

 left:-39px;

 font-family:'Oswald', serif;

 font-size:40px; /*tamaño de la fuente*/

 width:34px;

 margin:0 0 10px 0;

 padding:4px !important;

 color:#727272;

 text-align:center;

}




Estilo 3.


Lista numerada 4







CSS


.post ol{

counter-reset:li;

margin-left:0;

padding-left:0

}

.post ol li{

position:relative;    

margin:0 0 13px 2em !important;

padding:4px 8px !important;

list-style:none;

*list-style:decimal;

}

.post ol li:before{

content:counter(li);

counter-increment:li;

position:absolute;

top:0;

left:-2em;

width:27px;

margin-right:8px;

padding:3px 1px 4px 0 !important;

color:#fff; /*color de la fuente*/

font-size:16px;

background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxaPbvbv-9eUA9Di5oL4XxYCSYaCIs_-9a2l5MQX6dFiZtlLZSafa38qh0mhDRJrZ78KzKrkXTBgQ9TApsov7fnWbMeiWYrUAhnTP2CIr7K1Y7jXtQaWspDOLCFb0hW2kDbiLmaJ8ey0w/s1600/pasos-2.png) no-repeat left top;

font-weight:bold;

text-align:center

}

En este último ejemplo, decidí usar una imagen para el círculo (resaltada de rojo) como fondo del número. Podemos crear el círculo con CSS, pero éste se verá cuadrado en Internet Explorer 8, versión que aún no es tan vieja.



De cualquier modo, aquí te dejo otras imágenes de círculos con otros colores que puedes usar si quieres.




  • circulo




  • circulo




  • circulo




  • circulo




  • circulo




  • circulo











Nota: He resaltado de rojo los valores que pudieras editar en el CSS de los tres ejemplos, y agregado comentarios resaltándolos de  /*verde*/, para que puedas saber de qué se trata cada cosa, al terminar, puedes eliminarlo para no hacer más extenso el código de tu plantilla.



Compatibilidad:

Esto funcionará en todos los navegadores incluyendo IE8, en el caso de Internet Explorer 7, no se verán los estilos del número ya que no soporta los pseudoelementos :before o :after. Sin embargo, agregué una linea en el CSS específica para ese navegador, que hará que aparezca la numeración por defecto de la lista ordenada.



Espero sea útil ;)

miércoles, 12 de diciembre de 2012

Tooltips con CSS: Más simple, imposible

Hay muchas formas de crear tooltips con CSS; probablemente, esta, que muestra webdesignerdepot.com es una de las más sencillas que existen ya que sólo se requiere establecer una clase en el enlace o etiqueta a la cuál queremos aplicarlas y poner las dos reglas de estilo.

En este caso, la clase la llamamos tooltip pero, puede ser cualquier otro nombre y funcionará en cualquier navegador que admita el uso de los pseudo-elementos :after y :before.

El formato gráfico es completamente configurable así que las variaciones pueden ser casi infinitas.
<style type="text/css">
.tooltip {
display: inline;
position: relative;
}
.tooltip:hover:after {
bottom: 26px;
content: attr(title); /* este es el texto que será mostrado */
left: 20%;
position: absolute;
z-index: 98;
/* el formato gráfico */
background: rgba(255,255,255, 0.2); /* el color de fondo */
border-radius: 5px;
color: #FFF; /* el color del texto */
font-family: Georgia;
font-size: 12px;
padding: 5px 15px;
text-align: center;
text-shadow: 1px 1px 1px #000;
width: 150px;
}
.tooltip:hover:before {
bottom: 20px;
content: "";
left: 50%;
position: absolute;
z-index: 99;
/* el triángulo inferior */
border: solid;
border-color: rgba(255,255,255, 0.2) transparent;
border-width: 6px 6px 0 6px;
}
</style>
Y se usaría así:
<a href="#" title="este es un ejemplo de tooltip sencillo" class="tooltip">un ejemplo</a>

El texto que se mostrará es el que se encuentra en el atributo title de la etiqueta; si se quisiera utilizar otro atributo, bastaría cambiar la propiedad content; por ejemplo si se quiere usar rel o href sería:
content: attr(rel);
content: attr(href);
Hay que tener en cuenta que, dada su sencillez, el tooltip se verá "cortado" cuando se queire mostrar en algo que está muy a la derecha si el contenedor donde se encuentra la etiqueta tiene la propiedad overflow: hidden; algo bastante común en muchas plantillas de Blogger.