Añadir notas en imágenes (similar a Flickr) utilizando CSS
sábado, 21 de abril de 2007

Cualquiera que haya utilizado Flickr alguna vez debe conocer la opción para agregar notas dentro de una imagen (Add Note),  esta opción muchas veces es ideal para señalar o comentar dentro de la foto. Con un poco de CSS se puede lograr algo similar, funcional en Internet Explorer, Firefox y Opera.


[ Ver Ejemplo Final ]

Para poder crear cada zona activa se usaran varios divs anidados. A su vez estos estarán dentro de uno mayor, el cual contendrá a la imágen principal de fondo. La idea es que el usuario al acercarse a una zona activa, se muestre el correspondiente comentario. En el caso del ejemplo, tendremos que realizar 4 notas diferentes (una por cada integrante). Por lo tanto el body del HTML tendrá la siguiente apariencia:

HTML
  1. <div id="imagen">
  2. <div class="uno">
  3. <a href="#">
  4. <div class="contorno">
  5. <div class="texto">Charlie Watts</div>
  6. </div>
  7. </a>
  8. </div>
  9. <div class="dos">
  10. <a href="#">
  11. <div class="contorno">
  12. <div class="texto">Keith Richards</div>
  13. </div>
  14. </a>
  15. </div>
  16. <div class="tres">
  17. <a href="#">
  18. <div class="contorno">
  19. <div class="texto">Mick Jagger</div>
  20. </div>
  21. </a>
  22. </div>
  23. <div class="cuatro">
  24. <a href="#">
  25. <div class="contorno">
  26. <div class="texto">Ron Wood</div>
  27. </div>
  28. </a>
  29. </div>
  30. </div>
  31. </body>

 

Por otro lado el CSS será:

CSS
  1. #imagen {
  2. width: 400px;
  3. height: 300px;
  4. position: relative; /*Muy Importante*/
  5. background:url(image.jpg) no-repeat
  6. }
  7.  
  8. a {
  9. color:#000;
  10. text-decoration:none;
  11. position: absolute; /*Muy Importante*/
  12. width: 100px; /*Tamaño de todos los rectangulos*/
  13. height: 120px; /*Tamaño de todos los rectangulos*/
  14. }
  15.  
  16. a:hover {
  17. border: 1px solid #fff;/*Borde interior Blanco*/
  18. cursor: hand;
  19. }
  20.  
  21. /*Borde exterior amarillo*/
  22. .contorno{
  23. display: block;
  24. width: 104px;
  25. height: 124px;
  26. position: absolute;
  27. top: -3px;
  28. left: -3px;
  29. }
  30.  
  31. a:hover .contorno {
  32.  border: 1px solid #D4D82D;
  33. }
  34.  
  35. /*Posicion de cada nota*/
  36. .uno a{
  37. top: 25px;
  38. left: 8px;
  39. }
  40.  
  41. .dos a {
  42. top: 30px;
  43. left: 102px;
  44. }
  45.  
  46. .tres a {
  47. top: 10px;
  48. left: 195px;
  49. }
  50.  
  51. .cuatro a {
  52. top: 25px;
  53. left: 280px;
  54. }
  55.  
  56. /*Reglas para mostrar el texto de cada nota*/
  57. .texto {
  58. position: absolute;
  59. left: -10000px;
  60. text-align:center;
  61. background-color:#FFFFD3;
  62. width: 100px;
  63. bottom: -20px;
  64. -moz-border-radius: 8px; /*Bordes redondeados, solo FF*/
  65. }
  66.  
  67. a:hover .texto{
  68. left: 0;
  69. }

 

La clave del código es el parámetro position, estando este en absoluto podemos manejar el lugar donde queremos que aparescan las cajas activas. Lo mismo sucede con el texto que funciona de nota. A este último se le agregó el parámetro -moz-border-radius para tener bordes redondeados (solo para Firefox y navegadores con motor de renderizado Gecko)

[ Ver Ejemplo ]

 


Tags:  tutoriales css flickr




 Comentarios (20)
 1 Escrito por Pedro Rogerio, el 13-08-2007 11:51
It's cool man!!! Thanks!!!
 2 Escrito por Poke, el 13-08-2007 11:52
Muy buen aporte, muchas gracias.
 3 Escrito por Sergio, el 13-08-2007 11:53
Realmente interesante
 4 Escrito por rubendomfer website, el 13-08-2007 11:54
Muy bueno el efecto, interesante para explicar algunas fotos :)
 5 Escrito por Luis, el 13-08-2007 11:54
Me resulta muy útil para utilizar en mis clases imágenes complejas sin etiquetas de texto superpuestas. Por ejemplo, si tengo que explicar la composición de un motor de explosión, a partir de una imagen de despiece (con todas las piezas a la vista),necesitaría docenas de etiquetas de texto que dificultarían la visión del conjunto. Con este método, la imagen del conjunto siempre está limpia. 
Muchas gracias.
 6 Escrito por total 13, el 13-08-2007 11:55
Buena solución, que sin embargo se ve ensombrecida por un pequeño detalle: no valida el xhtml debido a que se usan div's dentro de a's, o sea elementos de bloque dentro de elementos de línea. Sin embargo, creo que esto sería subsanable cambiando los div's por span's, y en el css indicar que esos span's se comporrten como bloques con la instrucción display:block; no me he molestado en probarrlo pero a priori debería valer.
 7 Escrito por Guilherme Zühlke O'Connor, el 13-08-2007 11:57
Muy bueno!
 8 Escrito por JanOS, el 13-08-2007 11:58
Excelente!!!
 9 Escrito por albertofs, el 13-08-2007 11:58
Buena idea Leandro.
 10 Escrito por Asinox, el 13-08-2007 11:59
Gracias por esto! 
Saludos
 11 Escrito por Lord Tinchen, el 13-08-2007 12:00
Muy buen ejemplo. Muchas gracias!
 12 Escrito por Dranish, el 13-08-2007 12:00
Interesante tutorial. Saludos.
 13 Escrito por Susana, el 13-08-2007 12:01
Genial, estaba buscando algo así para poner comentarios y ayudas.
 14 Escrito por Sergio Espeja, el 13-08-2007 12:01
Una opción muy interesante para darle un poco de interactividad a las imágenes de nuestras webs! 
Gracias por el tutorial.
 15 Escrito por Julio Hurtado, el 24-08-2007 15:02
Excelente felicitaciones.
 16 Escrito por martin website, el 01-09-2007 01:15
muy buen post. muchas gracias!!!!
 17 Escrito por Mondoxíbaro website, el 12-09-2007 20:47
Muy buena la traducción (creo haberlo visto en Stu Nichols)
 18 Escrito por paula website, el 20-09-2007 03:04
gracias por el post!!
 19 Escrito por Migala website, el 06-11-2007 07:02
Lo único que al trabajar con div el tema diseño para varias resoluciones nos dará un poco de trabajo ¿no creen? 
Por lo demás está muy bien
 20 Escrito por ceritium website, el 10-04-2008 13:26
Buenísimo, ahora solo necesito una buena interfaz para agregar las notas :P


  • Por favor, mantenga el tópico de los mensajes en relevancia con el tema del artículo.
  • Lenguaje inapropiado será borrado.


Nombre:
E-mail:
Sitio Web:
Comentario:

Código:* Code

 
Delicious
Mister Wong
< Anterior   Siguiente >

Suscribirse por feed


Suscribirse por e-mail

Tu dirección de correo