반응형

 

a 태그를 사용하면 다른 웹페이지를 열 수 있습니다.

 

a 태그는 HTML에서 사용되는 하이퍼링크를 정의하는 태그입니다.

 

a 태그를 통해 현재 있는 웹페이지에서 다른 웹페이지로 이동할 수 있습니다. 이동할 수 있는 다른 웹페이지는 같은 사이트 내 다른 url을 가진 페이지일 수도 있고, 전혀 다른 도메인을 가진 다른 사이트의 url을 가진 페이지일 수도 있습니다. 또한 다른 페이지로 이동할 때에는 같은 브라우저 탭 내에서 현재 페이지를 이전 히스토리로 남기고 다음 페이지로 이동하게 만들 수도 있고, 아니면 현재 페이지는 현재 탭에 남겨두고 새 탭에서 다른 페이지를 열도록 만들 수도 있습니다. 혹은 같은 페이지 내에서 특정 위치로 스크롤을 이동시킬 수도 있습니다. 이런 기능들을 수행하는 하이퍼링크를 a 태그를 이용해서 간단하게 정의할 수 있습니다. 자식 요소로 텍스트가 들어가면 하이퍼링크 텍스트가 되고, 이미지를 넣어 하이퍼링크 이미지를 만들 수도 있습니다.

 


사전 지식: 절대 경로와 상대 경로에 대해 알아보자.

 

웹페이지를 만들 때, 이미지파일이나 css파일 혹은 javascript파일 등 리소스가 있는 위치를 접근하기 위해서 파일이 위치한 경로 값을 넣어줘야 하는 경우가 많습니다.

 

 

1. 절대 경로

 

파일이 있는 위치까지 root부터 쭉 따라간 전체 경로 값. 따라서 하나밖에 없습니다. 유일한 경로 값이기 때문에 절대 경로라고 부릅니다.

 

* 예시

ex1) https://www.google.com
ex2) C:\users\document\myimage.jpg

 

2. 상대 경로

 

현재 위치한 곳에서 시작해서 파일이 있는 위치까지 쭉 따라간 경로. 따라서 현 위치에 대해 상대적이다. 그래서 상대 경로라고 부릅니다. 이건 접근방법을 몇 가지 익혀야 합니다.

 

    • /: root directory
    • ./: 현재 디렉토리
    • ../: 현재보다 한 단계 상위 디렉토리
    • ../../: 현재보다 두 단계 상위 디렉토리(n단계는 굳이 말안해도..)
    • /dir1/dir2: root directory의 하위 디렉토리 dir1의 하위 디렉토리 dir2
    • ./dir1/dir2: 현재 디렉토리의 하위 디렉토리 dir1의 하위 디렉토리 dir2
    • ../dir1: 현재 디렉토리의 상위 디렉토리의 하위 디렉터리 dir1

 

html 태그 중에는 그 속성 값으로 이런 경로 값들을 요구하는 것들이 있습니다.

 

 


 

 

 

 

a 태그로 외부 사이트의 페이지 열기

 

a 태그를 사용할 때 꼭 필요한 속성은 href 입니다. 속성 값으로 링크의 url을 넣어줘야 하기 때문입니다.

다른 웹사이트인 외부 페이지를 열 때에는 절대 경로를 사용합니다.

 

* a tag 기본 사용법

<a href="이동할 웹페이지 url">링크텍스트</a>

 

링크 텍스트를 누르면 href 속성값으로 지정한 url로 이동합니다.

새 탭에서 열고 싶으면 속성 target="_blank"를 추가합니다.

 

실습

 

링크텍스트를 누르면 새 탭에서 구글이 열리도록 만들어보겠습니다.

 

* 예시 코드

<a href="https://www.google.com" target="_blank">구글 열기</a>

 

* 결과

구글 열기

 

 

a 태그로 같은 사이트 내 다른 페이지로 이동하기

 

하나의 페이지만으로 존재하는 웹사이트들도 있지만 많은 웹사이트들은 여러 개의 페이지를 가지고 있습니다.

 

지금은 여러 개의 페이지를 가지고 있는 웹사이트를 만들어보고 이들을 a tag를 사용해서 서로 연결하는 내부 링크를 만들어보겠습니다.

 

1) 프로젝트 폴더를 하나 만들고 그 안에 index.html 파일을 만듭니다.

index.html은 웹사이트의 홈 역할을 할 html문서의 이름을 지을 때 관용적으로 쓰는 파일명입니다.

2) 그리고 같은 폴더 안에 다른 페이지를 위한 html 파일을 하나 더 만듭니다. 파일명은 login.html 이라고 짓겠습니다.

이제 각각의 html파일 안에 아래 코드를 따라서 작성해주세요.

 

* 예시 코드

index.html

<!doctype html>
<html>
    <head>
    	<title>나의 홈페이지</title>
    </head>
    <body>
    	<h1>cocoder의 홈페이지입니다.</h1>
        <p>login을 하려면 아래 링크를 눌러주세요.</p>
        <a href="login.html">Log in</a>
    </body>
</html>

 

login.html

<!doctype html>
<html>
    <head>
    	<title>나의 홈페이지 - 로그인</title>
    </head>
    <body>
    	<h1>cocoder의 홈페이지입니다.</h1>
        <p>홈으로 가려면 아래 링크를 눌러주세요.</p>
        <a href="index.html">home</a>
    </body>
</html>

 

예시 코드에서 a 태그의 href속성 값을 보면 절대 경로가 아니라 상대 경로라는 것을 알 수 있습니다.

같은 프로젝트 폴더 내에서 접근하기 때문에 경로의 구조가 복잡하지 않은 웹사이트라면 상대 경로를 쓰는 것이 훨씬 간편할 수도 있습니다. 하지만 경로의 구조가 복잡하면 절대 경로를 사용하는 것이 더 편리할 수도 있습니다.

 

예시 코드를 작성하고 파일을 저장하셨으면 이제 웹브라우저로 html 파일을 실행해보고 링크가 잘 작동하는지 확인해봅니다.

 

* 결과

예시 html파일을 이용해 웹페이지를 열고 테스트해봅니다.

 

 

 

 

a 태그로 북마크 기능을 구현해보겠습니다.

 

a태그는 다른 페이지로 이동할 수 있을 뿐만 아니라, 원하는 id값을 가진 엘리먼트(HTML 태그)가 있는 위치로도 이동할 수 있습니다.

이것을 구현하면 북마크 기능이 됩니다.

북마크 기능은 크게 두 가지로 나눠볼 수 있습니다. '같은' 페이지 내 북마크 이동과 '다른' 페이지 내 북마크 이동입니다.

 

 

같은 페이지 내 북마크 이동

 

코드에서...

a 태그의 href 속성 값을 넣을 때 '#id명'을 붙여 넣습니다. #은 태그의 id명을 식별하는 역할을 합니다.

 

사용자는...

a 태그(링크)를 누르면 같은 페이지 내에서 해당 id의 태그가 있는 위치로 화면을 이동합니다.

 

<a href='#myTag'>id 값이 myTag인 태그로 이동</a>

 

같은 페이지 내 최상단으로 이동

 

id값이 없어도 href 속성 값으로 #top을 넣으면 a 태그를 누를 때 같은 페이지 내 최상단으로 화면을 이동합니다.

 

<a href='#top'>최상단으로</a>

 

다른 페이지 내 북마크 이동

 

a 태그의 href 속성값으로 다른 페이지의 url주소를 넣고 끝자리에 '#id명'을 붙여 넣습니다.

a 태그를 누르면 다른 페이지로 이동할 뿐만 아니라 해당 id의 태그가 있는 위치로 화면을 이동합니다.

 

<a href='/another#myTag'>/another url 이동 후 id값이 myTag인 태그로 이동</a>

 

실습

 

index.html과 book.html을 같은 폴더 내에 생성하고 다음 코드를 똑같이 작성합니다.

 

* 예시 코드

index.html

<head>
	<style>
		#greatbox {
			background-color:forestgreen;
			width:500px;
			height:2000px;
		}
	</style>	
</head>

<body>
	Here is top and have no id.
	<div id="greatbox"></div>
	<span id="target">Hello. my id is target.</span>
	<div id="greatbox"></div>
	<a href="#target">go to the target</a><br>
	<a href="#top">go to the top with no id</a><br>
	<a href="book.html#bookmark">go to the another page's bookmark</a>
</body>

book.html

<head>
	<style>
		#greatbox {
			background-color:forestgreen;
			width:500px;
			height:2000px;
		}
	</style>	
</head>

<body>
	Here is another page.
	<div id="greatbox"></div>
	<h1 id="bookmark">bookmark at another page</h1>
	<div id="greatbox"></div>
</body>

 

index.html을 웹브라우저에서 실행시킨 후에

1. href값이 #target인 a태그, go to the target을 누르면 같은 페이지 내에서 id="target"인 태그를 찾아 화면을 이동합니다.

2. href값이 #top인 a태그, go to the top with no id를 누르면 같은 페이지 내에서 최상단으로 화면을 이동합니다.

3. href값이 book.html#bookmark인 a태그, go to the another page's bookmark를 누르면 다른 페이지(book.html) 내에서 id="bookmark"인 태그를 찾아 화면을 이동합니다.

 

a tag를 누르면서 주소창을 보시면 해당 id값이 url값에 그대로 포함되어 노출된다는 사실도 덤으로 확인해보시길 바랍니다.

1. index.html#target

2. index.html#top

3. book.html#bookmark

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기