Cargando...

17 enero 2012

Cómo poner Botones en los Enlaces de Navegación sin usar Imágenes (estilo YouTube)

Seguramente ya habrás notado el estilo característico de los botones que actualmente usa Google en el diseño de sus servicios, como Blogger, YouTube, Google+, entre otros, aunque no son idénticos en todos los casos, sí son muy similares.

Pues hace apenas unos días, veía en CSS tricks un artículo en donde decían cómo crear el estilo de botones que usa YouTube al fondo de la página, usando algunas propiedades de CSS3 como esquinas redondeadas,  sombras, etc, y me gustó para usarlos en los enlaces de navegación, y crear los efectos que puedes ver en la siguiente imagen:

enlaces de navegacion

Ya antes habíamos hecho algo parecido, usando una sola imagen con un botón en 3D. Ahora, verás cómo poner botones sin usar ninguna imagen ;)


Si esto se adapta al diseño de tu blog y te gusta, entonces veamos cómo hacerlo:

Paso 1. Ve a Plantilla > Personalizar > Avanzado > Añadir CSS, y en el campo, agrega el siguiente CSS, y guarda los cambios en "Aplicar al Blog":
/*Botones en los enlaces de Navegación*/
a.home-link, a.blog-pager-newer-link, a.blog-pager-older-link {
display:inline-block;
border:1px solid #DDD;
border-radius:3px;
text-shadow:0 1px 1px #fff;
text-decoration:none;
font: bold 11px Sans-Serif;
padding:6px 10px;
white-space:nowrap;
vertical-align:middle;
color: #666;
background: #F1F1F1;
}
a.home-link:hover, a.blog-pager-newer-link:hover, a.blog-pager-older-link:hover, a.home-link:focus, a.blog-pager-newer-link:focus, a.blog-pager-older-link:focus {
border-color: #999;
background: -webkit-linear-gradient(top, white, #E0E0E0);
background: -moz-linear-gradient(top, white, #E0E0E0);
background: -ms-linear-gradient(top, white, #E0E0E0);
background: -o-linear-gradient(top, white, #E0E0E0);
-webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff;
-moz-box-shadow:0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff;
box-shadow: 0 1px 2px rgba(0,0,0,0.25), inset 0 0 3px #fff;
}
a.home-link:active, a.blog-pager-newer-link:active, a.blog-pager-older-link:active {
border: 1px solid #AAA;
border-bottom-color: #CCC;
border-top-color: #999;
-webkit-box-shadow: inset 0 1px 2px #aaa;
-moz-box-shadow:inset 0 1px 2px #aaa;
box-shadow:inset 0 1px 2px #aaa;
background:-webkit-linear-gradient(top, #E6E6E6, gainsboro);
background:-moz-linear-gradient(top, #E6E6E6, gainsboro);
background:-ms-linear-gradient(top, #E6E6E6, gainsboro);
background:-o-linear-gradient(top, #E6E6E6, gainsboro);
}
Paso 2. Opcional. Ahora vamos a cambiar los textos de los enlaces, para que en lugar de "Entradas antiguas" diga "Anterior" y en lugar de "Entradas recientes" diga: "Siguiente", para ello, vas a la edición de HTML de la plantilla, marcas la casilla de expandir plantilla de artilugios y con la ayuda de ctrl F, buscas:

<b:includable id='nextprev'>   <div class='blog-pager' id='blog-pager'>
    <b:if cond='data:newerPageUrl'>
      <span id='blog-pager-newer-link'>
      <a class='blog-pager-newer-link' expr:href='data:newerPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-newer-link&quot;' expr:title='data:newerPageTitle'><data:newerPageTitle/></a>
      </span>
    </b:if>

    <b:if cond='data:olderPageUrl'>
      <span id='blog-pager-older-link'>
      <a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-older-link&quot;' expr:title='data:olderPageTitle'><data:olderPageTitle/></a>
      </span>
    </b:if>

    <a class='home-link' expr:href='data:blog.homepageUrl'><data:homeMsg/></a>

Luego cambias:

<data:newerPageTitle/>  por: Siguiente.
<data:olderPageTitle/>  por: Anterior.
<data:homeMsg/> por: Inicio (opcional), si no lo cambias el texto quedará igual:"Página Principal".



Nota: Si no deseas cambiar los textos de los enlaces, no lo hagas, igualmente funcionarán los botones ya que no tienen definido el ancho.


Paso 3. Verificas en vista previa y si todo luce bien, guardas los cambios.

Y ¡listo!, así de fácil y rápido.


Esto funciona bien en todos los navegadores modernos, en el caso de Internet Explorer 8 o versiones pasadas, (sí en IE9 excepto gradiente en el efecto hover) los efectos no se ven exactamente igual, ya que no soporta algunas propiedades de CSS3, sin embargo, si se ven los botones. 

No olvides suscribirte, para recibir todas mis actualizaciones, directamente a tu email.

Ingresa tu correo electrónico:

Recuerda confirmar tu suscripción, haciendo click en el enlace que recibirás por email.

35 comentarios :

  1. Gracias! ya lo probe, esta genial :)

    ResponderEliminar
    Respuestas
    1. Perfecto Jonathan, en el caso de tu plantilla, puedes eliminar la imagen de fondo que tiene para todos los enlaces:

      Sólo busca:

      .blog-pager {
      background: transparent url(http://www.blogblog.com/1kt/simple/paging_dot.png) repeat-x scroll top center;
      }

      ...y elimina todo eso, o bien sólo la propiedad y valor.

      No olvides verificar en vista previa antes de guardar los cambios ;)

      Eliminar
    2. Esta forma de responder los comentarios esta buenizimo :)

      Eliminar
  2. Hola Karla: Me pregunto. Al momento de la carga del blog, que sería mejor, poner los botones de esta manera o integrando un background a las propiedades de estos y que llame a la imagen.
    Por curiosidad ya que ese tema me obsesiona. ;)

    ResponderEliminar
    Respuestas
    1. Se supone que pudiera ser mejor hacerlo sin usar imágenes por que menos imágenes es igual a menos peticiones HTTP, sin embargo, habría que hacer un estudio para ver el tiempo de carga en ambos casos, sobre todo cuando el código se vuelve muy extenso.

      Eliminar
  3. No encuentro la linea de código que mencionas, encontré lo siguiente:

    ResponderEliminar
    Respuestas
    1. Utiliza ctrl f, es más fácil y rápido ;)

      Me cuentas...

      Eliminar
    2. Excelente! Gracias

      Eliminar
  4. Hola Karla, me gustaría ponerlo en el blog, pero llevo el código al campo css de avanzado y no suceden cambios. Me viene sucediendo siempre que lo intento con algunos tips o trucos que tienes en Compartidísimo Podría ser por el tipo de plantilla ¿? La verdad es que no tengo ni idea pero el caso es que no puedo añadir ninguna línea css y eso a veces me limita y molesta. Un saludo.

    ResponderEliminar
    Respuestas
    1. Hola Carlos,

      Lo siento, sabes que cuando agregas CSS en esa sección no lo interpreta a menos de que hagas un cambio, simplemente dar enter después de cualquier caracter o pulsar la tecla space...

      http://www.compartidisimo.com/2011/01/agregrar-hojas-de-estilos-en-cascada.html

      Generalmente pongo esa nota en las entradas, pero últimamente no lo he hecho, ya que no quería parecer muy redundante, pero creo que será mejor ponerlo siempre, y ahora mismo lo haré ;)

      Me cuentas...

      Eliminar
  5. No lo consigo, sigue apareciendo la misma vista en previa, debe ser que tengo que suprimir algo de lo que trasteé anteriormente en esta sección. Te paso el enlace por si puedes ver algo: http://www.carolumart.com Espero no ser pesado y te lo agradezco de antemano.

    ResponderEliminar
    Respuestas
    1. No te preocupes Carlos,

      Ya eché un vistazo a tu blog, pero veo que no tienes agregado el CSS, agrégalo, haz click después de una llave de cierre, si es que no es interpretado lo que agregaste, y guarda los cambios haciendo click en Aplicar al blog.

      Desde ahí deberías ver los cambios, me cuentas...

      Eliminar
  6. En la ayuda que se me ha ocurrido pinchar arriba de la ventana para añadir css, sugiere que hay conflictos con las imágenes en las plantillas simples con gradientes y creo que ese es mi caso.
    Me quedo con las ganas porque también quería implementar un slidr (coda slidr que tienes por aquí en Compartidísimo) muy guapo que va con css pero en vista del conflicto con mi plantilla tendré que prescindir. Gracias Karla y disculpa mi torpeza.

    ResponderEliminar
    Respuestas
    1. Hola Carlos, siento mucho que estés liado. En la demostración yo uso la plantilla Simple y funciona. Al especificar bien a quien se le hacen las cosas en la plantilla, no debería haber problemas, es decir, si tu escribes:

      .dejate{
      width:100px;
      height:40px;
      background:#fff;
      }

      La clase "dejate" se verá como un rectangulito blanco que mide 100 pixeles de ancho por 40 pixeles de alto.

      Pues quisiera echarte + la mano, pero la única forma de poder decirte algo más concreto es viendo la plantilla con el CSS aplicado.

      Y bueno, todo depende de si quieres darte por vencido o luchar como un guerreo, jajaja, que poético se escuchó, yo soy muy mala para esas cosas... y hombre, no tienes nada de que disculparte :)

      Eliminar
    2. Olvidé decirte, otra opción es poner el CSS antes de:

      ]]></b:skin>

      Es lo mismo, con la diferencia de que de este último modo tienes que ir a la Edición de HTML de la plantilla.

      Eliminar
    3. En cuanto tenga tiempo lo voy a probar y te cuento, lucharé como un guerrero ;) Gracias por todo!

      Eliminar
    4. ¡Eso!, me cuentas que tal te fué. Buen fin de semana :)

      Eliminar
  7. Karla! Esto estuvo maravilloso! Muchas gracias!

    ResponderEliminar
  8. Genial, excelente descubrimiento tu blog Karla.

    Gracias.

    ResponderEliminar
  9. Los apliqué pero derrepente dejaron de funcionar, últimamente he modificado mi plantilla

    pues verlo aquí, sólo se puede apreciar las sombras:
    http://americanistadechiapas.blogspot.mx/2012/03/sorpresivos-finales.html

    Saludos!

    ResponderEliminar
    Respuestas
    1. Hola Pepée Pilato, eché un vistazo rápido a tu código fuente y veo un error que probablemente sea el responsable de que no se apliquen los estilos en los botones, y es en esta linea:

      *Botones en los enlaces de Navegación*/

      Le falta la barrita diagonal inversa al principio para que dicha linea sea un comentario, es decir, texto que no se interpreta por el navegador. Los comentarios necesitan una barrita al principio y luego el asterisco, y al final el asterisco y luego la barrita. Debería estar así:

      /*Botones en los enlaces de Navegación*/

      La única función de los comentarios, es que un usuario pueda reconocer de que se trata cada cosa, cuando sigues un tutorial por ejemplo. Si lo dominas bien, o no vas a editarlos posteriormente, no son necesarios, ya que lo único que hacen es hacer más extenso el código de tu plantilla. Así que también lo puedes quitar, tu decides.

      Si sigue sin verse, probablemente haya otros errores en el código CSS. Si tienes tiempo, echa un vistazo a esto:

      http://www.compartidisimo.com/2011/10/7-errores-comunes-en-el-css-al.html

      Suerte ;)

      Eliminar
  10. Está genial.. me gusta bastante.. .Un abrazo, gracias por la sugerencia!

    ResponderEliminar
  11. Insisto.. me gustó mucho mucho... puedes ver cómo va mi blog :D www.infrases.blogspot.com

    ResponderEliminar
    Respuestas
    1. Me da mucho gusto que te haya gustado, y gracias por el comentario. Eché un vistazo al blog y están muy cool las frases que publicas :) Si quieres puedes quitar la imagen de circulitos que está en los enlaces de navegación que personalizaste con este estilo, sólo busca este CSS y elimínalo:

      .blog-pager {
      background: transparent url(http://www.blogblog.com/1kt/simple/paging_dot.png) repeat-x scroll top center;
      }

      Verifica en vista previa antes de guardar los cambios y listo. Suerte!

      Eliminar
  12. Eres lo maxx!!..

    No pude encontrar el CSS que me indicas, pero lo que hice fue cambiar la url de la imagen de circulitos molesta por otra url que contiene una imágen totalmente transparente jejeje...

    Un abrazo Karla, gracias por tus buena vibra!! ;)

    ResponderEliminar
    Respuestas
    1. Puedes buscarlo con la ayuda de "Ctrl F" (presiona la tecla "Ctrl" y "F" al mismo tiempo) y escribe en el campo: ".blog-pager", verás que así lo encuentras rápido ;)

      Suerte y buen día!

      Eliminar
    2. Hola amiguita... tengo una consulta... estoy modificando la plantilla para un nuevo blog.. y quisiera conocer la forma de agregar "estilos" para convertir el "Leer Más" en un botón bien bello.

      Espero me puedas colaborar y ojalá sea algo sencillo jejeje.. un abrazo.. te cuidas.

      ENLACE DEL BLOG: http://fanaticoweb.blogspot.com/

      Eliminar
    3. Echa un vistazo a esta entrada, creo que puede servir...

      http://www.compartidisimo.com/2012/05/3-magnificos-generadores-de-botones-con.html

      Disculpa la demora en contestar, estaba ausente del blog por motivos de salud.

      Eliminar
  13. Karla hacia rato que no te molestaba igualmente hacia rato no estabas al tanto y espero que te encuentres mejor.

    La pregunta que tengo es como puedo aplicar este mismo efecto o diseño a los enlaces de leer mas de las entradas, ¿Si sabes a lo que me refiero?

    Gracias quedo pendiente!

    ResponderEliminar
    Respuestas
    1. Hola Alan, muchas gracias, estoy mejor, ahora sólo estoy un poco atrasada con los comentarios, pero ahí la llevo...

      Es muy sencillo, basta con especificar el ID del enlace y escribir las propiedades de CSS que harán que tenga la apariencia que desees.

      Dame tiempo y escribo sobre eso ;)

      Eliminar
    2. Muchas Gracias Karla, la verdad ya lo conseguí, con un poco de observación y unos cuantos códigos nada fuera de lo normal lo logre. Gracias y pues estaré pendiente de la entrada sobre el leer mas de Blogger que seguro sera genial!.

      Eliminar
  14. Me urge su ayuda necesito un código html. Deseo crear una imagen que contenga el botones que me diriga a Inicio, archivos de blog, u otros botones. Les dejo un ejemplo de este blog:

    http://beatrizpereiraw.blogspot.com/

    muchas gracias espero pronta respuesta.

    ResponderEliminar
    Respuestas
    1. Hola Karla,
      Echa un vistazo a esta entrada, creo que puede ser útil:

      http://www.compartidisimo.com/2011/01/menu-vertical-con-botones-usando-la.html

      Igualmente si no quieres usar gradientes, puedes usar solo color de fondo.


      Eliminar