언어/HTML

[html] 이미지 한 장에 여러 개 링크를 거는 방법 / <map>, <area>

seongEun95 2022. 9. 17. 21:48

본 글은 이미지 한 장에 여러 개의 링크를 걸 수 있는 HTML 태그인 <map> 태그에 대해서 알아보고자 합니다. 

 

- 목차 -

가. <map> 태그를 사용해야 하는 상황

나. <map> 태그에 대하여

 1. <map> 태그 사용법

 2. <map> 태그를 쉽게 사용할 수 있는 사이트 소개

다. 참고자료

 


가. <map>태그를 사용해야 하는 상황

html을 사용하시는 분들은 보통 <img> 태그에 <a> 태그를 감싸주어 이미지를 클릭하면 페이지가 이동되도록 할 것 입니다.

<div>
    <a href="링크">
      <img src="이미지 경로" alt="이미지에 대한 설명">
    </a>
</div>

위의 방법은 이미지를 클릭하면 다른 페이지로 이동되지만 링크를 단 하나만 설정할 수 있습니다.

 

다음과 같은 상황을 가정해봅시다. 

이 글을 읽고 있는 분은 아마 개발자이거나 개발자를 준비하고 계시는 분 일 것입니다.

어느 날 기획자 또는 디자이너가 요구사항을 가져옵니다.

"이미지 한 장에 제품이 여러 개가 있는데 각각 다른 링크로 이동되도록 부탁드려요~"

제품이 여러 개가 존재하는 이미지

위의 예시를 보면 제품별로 이미지를 잘라내어 링크를 걸기에 난감한 상황에 직면할 수 있습니다.

 

또한 웹 사이트를 이용하다 보면 분명 하나의 이미지인데 이미지 안의 특정 제품을 클릭하면, 클릭한 제품에 대한 상세 화면으로 이동이 되는 것을 경험한적이 있을 것입니다.

 

대표적인 웹 사이트가 바로 이케아 입니다. 

https://www.ikea.com/kr/ko/

 

IKEA KOREA | 이케아 코리아

행복을 만드는 우리집, IKEA 더 나은 생활을 위해 다양한 홈퍼니싱 제품 및 솔루션을 제공합니다. IKEA.kr을 방문하여 온라인으로 쇼핑하거나 가까운 매장을 직접 방문해보세요.

www.ikea.com

 

이케아는 판매하는 단일 제품에 대한 이미지가 아니라 해당 제품이 있는 공간을 꾸미고 그 공간 안에서 제품이 어떻게 보여지는지를 고객에게 보여줌으로써, 고객의 공간이 이 제품을 통해 어떻게 바뀔지 상상할 수 있도록 합니다. 

 

그리고 공간 속에 배치된 각 제품을 클릭하면 해당 제품을 구매할 수 있는 구매 페이지로 이동을 하게 됩니다. 이렇게 하나의 사진 이미지에 특정 영역 마다 링크를 삽입해서 사용자가 링크를 클릭하면 별도의 페이지로 이동하도록 개발 할 때 사용할 수 있는 태그가 바로 <map> 태그입니다.


나. <map> 태그에 대하여

  1. <map> 태그 사용법

<img usemap="#food" src="이미지 경로" alt="이미지 설명">
  <map name="food">
    <area shape="링크 영역 모양" coords="링크 영역 좌표1" href="이동할 페이지 링크1" alt="대체 텍스트1">
    <area shape="링크 영역 모양" coords="링크 영역 좌표2" href="이동할 페이지 링크2" alt="대체 텍스트2">
    <area shape="링크 영역 모양" coords="링크 영역 좌표3" href="이동할 페이지 링크3" alt="대체 텍스트3">
  </map>

1) <img> 태그를 생성하고 usemap 속성과 값을 입력합니다.

 

2) <map> 태그를 생성하고 name 속성값에 적절한 값을 입력합니다.

 

3) 이미지와 <map>태그를 연결하기 위해서 <img> 태그의 usemap 값과 <map>태그의 name 값을 동일하게 작성하고 usemap 값에는 맨 앞에 #을 붙여서 입력합니다.

 

4) <map> 태그 안으로 연결할 링크 갯수와 동일하게<area> 태그를 작성합니다.

 

5) <area> 태그의 shape 속성, coords 속성, href 속성에 알맞는 값을 입력합니다.

  - shape : 링크 영역의 모양을 설정합니다. (값 : circle, rect, poly) / circle = 원 영역, rect = 사각형 영역, poly = 다각형

  - coords : 링크 영역의 좌표를 설정합니다.

    (circle 일 경우 coords="x좌표, y좌표, 반지름" )

    (rect 일 경우 coords="좌측 상단 x좌표, 좌측 상단 y좌표, 우측 하단 x좌표, 우측 하단 y좌표")

    (poly 일 경우 coords="x1, y1, x2, y2, x3, y3"), 다각형의 모서리에 대한 좌표를 입력한다.

   - href : <area> 태그 영역마다 이동할 페이지 링크를 입력합니다.

   - target : _self : 현재 자기 자신의 창에서 이동, _blank : 새 창(새 탭)에서 열림

 

6) 위의 과정이 끝나면 테스트 진행 후 완료됩니다.

 

  2. <map> 태그를 쉽게 사용할 수 있는 사이트 소개

"1. <map> 태그 사용법"에서 <area> 태그 coords의 속성 값은 알기가 어려운데요 아래 사이트에서 쉽게 제작할 수 있습니다.

https://www.image-map.net/

 

image-map.net 처음 접속한 화면

1) 주소로 처음 접속하면 위와 같은 화면이 나옵니다. 왼쪽(자신의 PC에서 이미지 선택) 또는 오른쪽(웹 이미지 주소로 가져오기) 버튼을 클릭하여 이미지를 가져오시면 됩니다.

 

2) 이미지를 입력하면 위와 같은 화면이 나옵니다. 항목들을 작성합니다.

 ① Active : 입력할 항목을 클릭합니다.

 ② Shape : 링크 영역 모양을 선택합니다.

 ③ 이미지에 마우스를 왼쪽 클릭하여 링크 영역을 표시합니다.

 ④ Link : 영역을 클릭 시 이동할 페이지 링크를 입력합니다.

 ⑤ Title : 영역에 대한 설명을 입력합니다.

 ⑥ Target : 링크 클릭 시 창을 어떻게 띄울지 선택합니다. (_blank : 새창, _self : 현재 자신 창)

 ⑦ X버튼을 클릭 시 해당 항목이 초기화 됩니다.

 ⑧ 링크영역을 추가하고 싶다면 "Add New Area" 버튼을 클릭합니다.

 ⑨ 영역을 다 만들었다면 "Show Me The Code!" 버튼을 클릭합니다.

 

3) 코드를 복사합니다.

제작된 map 태그 코드

- "Show Me The Code!" 버튼을 클릭하면 팝업창으로 코드들을 보여줍니다. 그대로 코드 에디터에 복사 후 <img> 태그의 이미지 경로와 usemap, name 속성 등의 값들을 수정하면 완료됩니다!

 

4) 실제 결과물 입니다.

실제 코드를 복사 후 화면에 나타낸 모습

- 캡쳐로 인해 마우스 포인터는 보이지 않지만 실제 링크 영역을 마우스로 올리고 있으면 title 값이 나오고 좌측하단에 이동할 링크까지 보여주고 있습니다.

 


 

클릭 유도 표시

* 실제 클릭할 영역까지 보여주고 있지 않으니 이미지에 표시해주면 쉽게 클릭을 유도할 수 있습니다.

 

 

저의 글을 읽어주셔서 감사합니다.

 


 

다. 참고자료

1. https://www.youtube.com/watch?v=5zqxXKrnZtY / 개발자의 품격 - 사진 한장에 여러개의  하이퍼링크 걸기

2. http://www.tcpschool.com/html-tag-attrs/area-coords / TCPSCHOOL - <area> 태그의 coords 속성

3. https://developer.mozilla.org/ko/docs/Web/HTML/Element/area / MDN - <area>

 

* 사진출처

1. https://pixabay.com/ko/photos/%eb%8f%bc%ec%a7%80-%eb%8f%bc%ec%a7%80%ea%b3%a0%ea%b8%b0-%eb%8f%bc%ec%a7%80%ea%b3%a0%ea%b8%b0-%ec%95%88%ec%8b%ac-2103502/ / 사진출처 - 픽사베이