Avatar personalizado para comentarios (anidados) anónimos | Oloblogger Para los comentarios tradicionales ya teníamos sistemas para mostrar un avatar personalizado en los ...

24 de enero de 2012


18☆
Avatar personalizado para comentarios (anidados) anónimos

Para los comentarios tradicionales ya teníamos sistemas para mostrar un avatar personalizado en los comentarios anónimos, pero con los nuevos da un poco de respeto ponerse a trastear en el script. Sobre todo teniendo en cuenta que es posible que algo modifiquen en un futuro no muy lejano.

Pero vamos a explicar un par de truquillos usando CSS que no sólo nos facilitan bastante la tarea, sino que también nos permitirán volver atrás cuando queramos, borrando sólo una única línea. La misma que ahora vamos a insertar en nuestro código para arreglar esto.


En ambos casos, nuestra faena empieza por diseñar un avatar de 36x36px para utilizar en lugar del espacio en blanco que saldría si no hacemos nada. Aquí tenéis uno para las pruebas.


La primera opción es aplicar un fondo con el dibujo que queremos y que se aplicará en todos los casos. El truco está en que cuando existe avatar, este se mostrará por encima del fondo y no se apreciará que hay otra imagen debajo. Estamos hablando de CSS, así que esto habría que meterlo entre las dos etiquetas SKIN.

.comments .avatar-image-container {
background: url(http://4.bp.blogspot.com/-CCyY8H1_br0/Tx3wxWoTvmI/AAAAAAAABss/_SquuwCipG8/s1600/anonimo.jpg) no-repeat 50% 50%;
}

Este sistema sólo tiene un problema y es cuando el usuario utiliza una imagen con transparencia. En este caso, el avatar que usamos de fondo se verá a través de las zonas transparentes.


Segunda opción. Para solucionar eso echaremos mano de los selectores de atributos, que nos permiten filtrar dentro de una determinada clase, aquellos elementos con un característica peculiar.


Y esta característica en los comentarios anónimos es precisamente la imagen sin contenido que Blogger les aplica y cuya dirección es http://img1.blogblog.com/img/blank.gif. Si pincháis en el enlace veréis... nada, pues eso es lo que contiene la imagen. Bueno, en honor a la verdad es una imagen casi imperceptible de 1x1 px.

Teniendo en cuenta esto, la otra alternativa a mi parecer más completa, sería esta:

.avatar-image-container img[src$="img1.blogblog.com/img/blank.gif"] {
background:url(http://4.bp.blogspot.com/-CCyY8H1_br0/Tx3wxWoTvmI/AAAAAAAABss/_SquuwCipG8/s1600/anonimo.jpg) no-repeat 50% 50%;
}

Para los curiosos, lo que hace esto es buscar en todas las clases .avatar-image-container que haya en nuestra página y comprobar si la imagen que incluyen termina en la cadena img1.blogblog.com/img/blank.gif.

A las que cumplen con esa condición se les aplica un fondo que es el dibujo de nuestro anónimo amigo.

En este segundo sistema, el problema reside en que los navegadores más antiguos no reconocen los selectores de este tipo, pero afortunadamente, cada vez quedan menos.

¿Vemos otro post al azar por si le encuentras utilidad?

Otras entradas que te podrían interesar:


18 comentarios:

  1. Una pregunta Oloman¿?


    Estoy utilizando el codigo para numerar comentarios con css este, y cada vez que hay un nuevo comentario a parece el numero 1 y cuando hay replies, cambia a 1.a y asi sucesivamente, pero cuando pongo otro comentario aparece la lista así:

    1
    1.a
    1.b
    1.c

    1
    1.a
    y se repite de nuevo...

    AYUDA
    como lo soluciono...

    ResponderSuprimir
    Respuestas
    1. Sergio, he mirado aquí y todo va bien. Supongo que ya está solucionado. Agradecería que me lo hicieráis saber y así no tengo que andar mirando para nada. Gracias.

      Suprimir
  2. Oloman, te doy otra regla CSS. Hay gente que comenta con este avatar, por defecto de blogger.

    La regla sería esta:

    .comment .avatar-image-container img[src="http://img2.blogblog.com/img/b16-rounded.gif"]

    ResponderSuprimir
    Respuestas
    1. Es verdad. No recuerdo en qué casos sale pero es otra opción que nos permitiría sustituir también eso. Lo que ocurre es que sería algo más complicado porque esa imagen no es transparente como la otra y cuando pusiéramos un fondo como aquí se ha explicado, esa B seguiría viéndose por encima.

      Para solucionarlo se me ocurre que se podría usar un CONTENT posicionado con ABSOLUTE por encima del contenido original (el logo de Blogger).

      Gracias por el apunte que supongo sirve para todos.

      Suprimir
    2. Yo lo que he hecho es usar: visibility:hidden y solucionado.

      Suprimir
    3. Ahora me perdí. Si a esta segunda imagen le pones un hidden, no se ve nada ¿no? Ni el background ni la B ¿?

      Suprimir
    4. sí, con visivility:hidden la imagen en sí no es visible, pero ocupa espacio, así que el contenedor sí, por lo que el fondo se ve.

      Suprimir
    5. Es cierto, se me fue la perola.
      Si ocultas la imagen con visibility:hidden, no se ve el fondo de la imagen, pero si el del contenedor.

      Yo lo que haría sería poner un fondo a las imágenes normales para evitar que se vea el fondo del contenedor si son transparentes, y ocultar esas dos para que se vea el fondo del contenedor.

      Suprimir
    6. Creo que el resultado sería el mismo. Si las imágenes normales tienen un fondo, el avatar con transparencia dejaría ver detras ese fondo. No te comas el coco que el logo de Blogger no es tan grave como un hueco. De todas formas, creo que si lo que quieres es que no se vea la B, puede que ocultar esa imagen y poner un fondo al contenedor puede funcionar. Es casi lo mismo que has dicho ;)

      .avatar-image-container img[src="http://img2.blogblog.com/img/b16-rounded.gif"] {display:none;}

      .avatar-image-container {BACKGROUND}

      Suprimir
  3. Me acabo de fijar en algo olo...

    ¿Cómo has hecho para que los links de los comentarios sean interactivos al hacer clic? Los mios solo cambian de color al pasar el cursor pero si hago clic no funcionan.

    Gracias.

    ResponderSuprimir
    Respuestas
    1. Usando la clase a:active
      Lo siento oloman si te quito trabajo ;)

      Suprimir
    2. es como si me hubieran hablado en chino jajaja

      ¿Que es una clase? ¿Que hago con esa clase?

      xDD

      Suprimir
    3. No problemo Emilio. Se agradece una ayuda. Lo que pasa es que no sé si es eso lo que pregunta William porque mis enlaces sólo tienen el hover. De hecho pensaba que se refería a que los enlaces de Responder no le funcionaban como les pasaba a otros, pero tampoco es eso porque en su blog pitan bien.

      ¿A qué te refieres entonces William?

      Suprimir
  4. Oloman. Hola soy Alex, y pues ya tiene mucho tiempo que he visitado este sitio, pero por lo regular no leo ninguna entrada, pero ahora que me percato, que eres un genio, te sigo en twitter y facebook, para estar al tanto.

    Felicidades con el sitio.

    ResponderSuprimir
    Respuestas
    1. Bueno, gracias. Pero estoy lejos de ser un genio. Como mucho alguien muy observador, con ganas de aprender y muy cabezota cuando algo no funciona :)

      Suprimir
  5. TwT ha dejado de salir la imagen de los cometarios anónimos

    ResponderSuprimir
    Respuestas
    1. Sí, este truco ya no sirve. Hace un par de días Blogger volvió a cambiar el código y ahora es más complicado cambiarlo sólo con CSS. Tanto que no he dado con la manera :s

      Suprimir
    2. TwT eso me imagine, bueno ni modo, habra que esperar :D

      Suprimir