El Atributo SHAPE

Se utiliza junto con la etiqueta area dentro de un mapa de imágenes map para definir la forma de una zona interactiva en una imagen.
El atributo shape
en HTML se utiliza junto con el elemento <area>
dentro de un mapa de imágenes (<map>
) para definir la forma de una zona interactiva en una imagen. Estas zonas permiten crear enlaces o acciones en áreas específicas de una imagen (como un mapa geográfico interactivo o un diagrama). A continuación, aprenderás cómo implementarlo correctamente.
1. Introducción al atributo shape
-
Propósito:
Especificar la forma geométrica de una región interactiva dentro de una imagen. -
Valores admitidos:
-
rect
: Rectángulo. -
circle
: Círculo. -
poly
: Polígono (formado por múltiples vértices). -
default
: Toda el área de la imagen no cubierta por otras formas.
-
-
Contexto:
Se usa dentro de<area>
, que a su vez está dentro de<map>
. La imagen asociada se vincula con<img usemap="#nombre-del-mapa">
.
2. Sintaxis básica
<img src="imagen.jpg" alt="Descripción" usemap="#mapa-ejemplo"> <map name="mapa-ejemplo"> <area shape="rect" coords="x1,y1,x2,y2" href="enlace.html" alt="Descripción de la zona" > </map>
3. Ejemplos prácticos
Ejemplo 1: Rectángulo (shape="rect"
)
Define un área rectangular con las coordenadas del vértice superior izquierdo (x1,y1
) y el inferior derecho (x2,y2
):
<img src="mapa.png" alt="Mapa interactivo" usemap="#mapa1"> <map name="mapa1"> <area shape="rect" coords="50,50,200,150" href="ciudad-a.html" alt="Ciudad A" > </map>
Explicación:
-
coords="50,50,200,150"
:-
50,50: Esquina superior izquierda.
-
200,150: Esquina inferior derecha.
-
Ejemplo 2: Círculo (shape="circle"
)
Define un área circular con las coordenadas del centro (x,y
) y el radio (r
):
<map name="mapa2"> <area shape="circle" coords="300,200,50" href="pueblo-b.html" alt="Pueblo B" > </map>
Explicación:
-
coords="300,200,50"
:-
300,200: Centro del círculo.
-
50: Radio en píxeles.
-
Ejemplo 3: Polígono (shape="poly"
)
Define un área poligonal con una lista de coordenadas de vértices (x1,y1,x2,y2,...,xn,yn
):
<map name="mapa3"> <area shape="poly" coords="400,50,500,150,450,200" href="region-c.html" alt="Región triangular" > </map>
Explicación:
-
coords="400,50,500,150,450,200"
:-
Tres vértices formando un triángulo:
-
(400,50), (500,150), (450,200).
-
-
Ejemplo 4: Área predeterminada (shape="default"
)
Define una zona que cubre toda la imagen no ocupada por otras áreas:
<map name="mapa4"> <area shape="default" href="default.html" alt="Área no especificada" > </map>
4. Buenas prácticas
-
Usar herramientas para generar coordenadas:
Calcular manualmente las coordenadas es tedioso. Usa editores de imágenes como GIMP o herramientas en línea como Image Map Generator. -
Accesibilidad:
-
Siempre incluye el atributo
alt
en<area>
para describir la zona. -
Evita depender únicamente de mapas de imágenes; considera alternativas como SVG o CSS para diseños responsivos.
-
-
Compatibilidad:
-
Los mapas de imágenes funcionan en navegadores modernos, pero pueden no adaptarse bien a pantallas pequeñas.
-
5. Casos de uso comunes
-
Mapas geográficos interactivos: Resaltar países o regiones.
-
Diagramas técnicos: Enlazar partes de una infografía.
-
Menús visuales: Crear botones en una imagen.
6. Errores comunes
-
Coordenadas incorrectas: Asegúrate de que los valores estén dentro de las dimensiones de la imagen.
-
Olvidar vincular el mapa a la imagen: Usa
usemap="#nombre-del-mapa"
en<img>
. -
Sobrecargar la imagen: Demasiadas áreas interactivas pueden confundir al usuario.
7. Ejemplo completo
<!DOCTYPE html> <html> <head> <title>Mapa interactivo</title> </head> <body> <img src="world-map.png" alt="Mapa del mundo" usemap="#worldmap" > <map name="worldmap"> <!-- América del Norte --> <area shape="poly" coords="100,50, 200,80, 180,150, 120,160" href="north-america.html" alt="América del Norte" > <!-- Europa --> <area shape="rect" coords="300,100,400,200" href="europe.html" alt="Europa" > <!-- Área predeterminada --> <area shape="default" href="resto-del-mundo.html" alt="Otras regiones" > </map> </body> </html>
8. Conclusión
El atributo shape
es útil para:
-
Crear interactividad en imágenes sin necesidad de JavaScript.
-
Definir zonas clicables personalizadas en gráficos complejos.
Limitaciones:
-
No es responsive por defecto (las coordenadas son fijas en píxeles).
-
Alternativas modernas como SVG ofrecen más flexibilidad y escalabilidad.
Recomendación final:
Usa mapas de imágenes para proyectos simples y estáticos. Para diseños responsivos o complejos, considera SVG o frameworks como React + Canvas.
¡Experimenta con este atributo y mejora la interactividad de tus imágenes!