html如何创建图片热区(img usemap)?

要在 HTML 中创建图片热区,你需要结合使用 <img>, <map>, 和 <area> 标签。 usemap 属性将图像链接到图像映射。 图像映射由 <map> 标签定义,其中包含多个 <area> 标签,每个标签都定义图像上的一个可点击区域。

以下是创建图像热区的步骤和示例:

  1. <img> 标签: 使用 usemap 属性将图像链接到图像映射。usemap 属性的值应以 # 开头,后跟图像映射的名称。

    <img src="image.jpg" alt="Image with hotspots" usemap="#image-map">
    
  2. <map> 标签: 使用 name 属性定义图像映射。name 属性的值应与 <img> 标签的 usemap 属性值(# 之后的部分)相同。

    <map name="image-map">
        <!-- 在这里定义热区 -->
    </map>
    
  3. <area> 标签:<map> 标签内使用 <area> 标签定义热区。每个 <area> 标签都需要以下属性:

    • shape: 定义热区的形状。常用的值包括:

      • rect:矩形。需要 coords 属性指定左上角和右下角的 x 和 y 坐标。
      • circle:圆形。需要 coords 属性指定圆心 x 和 y 坐标以及半径。
      • poly:多边形。需要 coords 属性指定每个顶点的 x 和 y 坐标。
      • default:默认区域,覆盖整个图像。如果其他区域未捕获点击,则此区域将被激活。
    • coords: 定义热区的坐标。坐标值取决于 shape 属性的值。坐标以像素为单位,相对于图像的左上角。

    • href: 指定点击热区时要打开的 URL。 如果不想链接到任何地方,可以将其设置为 # 或省略此属性。

    • alt: 提供替代文本,用于无法显示图像的情况。

    • target: 定义链接的目标窗口或标签页。例如 _blank 会在新标签页打开链接。

示例:

<!DOCTYPE html>
<html>
<head>
<title>Image Map Example</title>
</head>
<body>

<img src="image.jpg" alt="Image with hotspots" usemap="#image-map">

<map name="image-map">
  <area shape="rect" coords="0,0,100,100" href="page1.html" alt="Link to Page 1">
  <area shape="circle" coords="200,150,50" href="page2.html" alt="Link to Page 2">
  <area shape="poly" coords="300,0,400,0,400,200,300,200" href="page3.html" alt="Link to Page 3">
  <area shape="default" href="default.html" alt="Default Link">
</map>

</body>
</html>

在这个例子中:

  • 第一个热区是一个矩形,从左上角 (0,0) 到右下角 (100,100)。
  • 第二个热区是一个圆形,中心在 (200,150),半径为 50。
  • 第三个热区是一个多边形,由四个点 (300,0), (400,0), (400,200), (300,200) 定义。
  • default 区域会捕获图像上任何其他未定义区域的点击。

寻找坐标的工具:

手动确定坐标可能会很麻烦。一些图像编辑器或在线工具可以帮助你找到图像上特定点的坐标,从而更轻松地创建热区。

记住,<map> 元素通常放在 <body> 的底部,或者在使用它的 <img> 元素之后。 这有助于确保在浏览器尝试解析 <map> 元素之前加载图像。

posted @ 2024-12-04 06:07  王铁柱6  阅读(566)  评论(0)    收藏  举报