Atributo coords do HTML
O atributo coords do HTML especifica as coordenadas de uma área no mapa de imagem. Leia sobre essa propriedade e veja um exemplo de uso no elemento <area>.
O atributo HTML coords define as coordenadas de uma área clicável (um "hotspot") em um mapa de imagem do lado do cliente. É usado no elemento <area>, dentro de um <map>.
O valor de coords não tem significado por si só — ele é sempre interpretado de acordo com o atributo shape no mesmo <area>. Os mesmos números significam coisas diferentes para um retângulo, um círculo ou um polígono, portanto coords e shape devem ser sempre definidos juntos.
Como funciona o sistema de coordenadas
As coordenadas são medidas em pixels CSS, em relação à imagem renderizada:
- A origem
0,0é o canto superior esquerdo da imagem. xaumenta para a direita,yaumenta para baixo.- O canto inferior direito da imagem está em
width,height— portanto, para uma imagem de 250×150, a coordenada válida máxima é aproximadamente250,150.
Como as coordenadas estão vinculadas ao tamanho renderizado, um mapa de imagem só é preciso no tamanho para o qual as coordenadas foram medidas. Se você dimensionar a imagem com CSS (um width/height diferente, um layout responsivo ou zoom), os hotspots deixarão de se alinhar com a imagem. Por isso, os mapas de imagem funcionam melhor em imagens de tamanho fixo.
Valores
O formato de coords depende inteiramente do shape:
Valor de shape | Formato de coords | Significado |
|---|---|---|
rect | x1,y1,x2,y2 | Canto superior esquerdo (x1, y1) e canto inferior direito (x2, y2). É necessário que x1 < x2 e y1 < y2. |
circle | x,y,radius | Centro (x, y) e o radius em pixels. |
poly | x1,y1,x2,y2,...,xn,yn | Uma lista de pontos de vértice. O navegador fecha automaticamente a forma unindo o último ponto ao primeiro. |
default | (nenhum) | A imagem inteira. default é um valor de shape, não de coords — um <area shape="default"> não recebe coords. |
Um erro comum é fornecer os cantos de rect na ordem errada. coords="90,90,35,55" é inválido porque x1 > x2 e y1 > y2; escrito corretamente, esse retângulo é coords="35,55,90,90".
Sintaxe
<area shape="rect" coords="x1,y1,x2,y2">Exemplos do atributo coords do HTML
O exemplo abaixo usa um rect, dois circles e um poly na mesma imagem:
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
</head>
<body>
<p>Click on the logo or on one of the logo item to watch it closer:</p>
<img src="/uploads/media/news_gallery/0001/01/thumb_316_news_gallery_list.jpeg" width="250" height="150" alt="block" usemap="#blockmap" />
<map name="blockmap">
<!-- circle: center x,y and radius -->
<area shape="circle" coords="50,32,25" alt="html" href="/uploads/media/book_gallery/0001/01/d450f0358f947dffb3af91195c3002600d74101b.png" />
<area shape="circle" coords="195,32,28" alt="css" href="/uploads/media/book_gallery/0001/01/25521e981b34da57c8f51baddc5b76351b855818.png" />
<!-- rect: top-left x1,y1 then bottom-right x2,y2 (x1<x2, y1<y2) -->
<area shape="rect" coords="35,55,90,90" alt="php" href="https://www.w3docs.com/" />
<!-- poly: a triangle joining three points -->
<area shape="poly" coords="150,80,230,80,190,140" alt="js" href="https://www.w3docs.com/" />
</map>
</body>
</html>Nota: Sempre forneça a cada
<area>um valoraltsignificativo — é o único texto que um leitor de tela tem para aquele hotspot.
Uma nota sobre acessibilidade
Os mapas de imagem do lado do cliente são uma técnica legada e apresentam ressalvas reais. Os hotspots nem sempre são acessíveis pelo teclado de forma confiável, seu significado depende de um alt preciso para cada <area>, e as coordenadas se quebram sempre que a imagem é redimensionada ou renderizada em uma escala diferente. Para a maioria das interfaces modernas, é melhor posicionar links ou botões individualmente estilizados e focalizáveis sobre (ou ao lado de) a imagem, que permanecem acessíveis e responsivos. Use coords e mapas de imagem apenas quando realmente precisar de regiões clicáveis irregulares em uma única imagem raster de tamanho fixo.
Atributos e tags relacionados
<map>— define o mapa de imagem que agrupa os elementos<area>.<area>— o elemento no qualcoordsé definido.- Atributo
alt— o texto acessível para cada área.