a태그 : a태그, 앵커태그, 링크태그 라고 함
링크를 연결해주는 태그
inline 레벨
기본 글자색 파랑, 밑줄 파랑
히스토리가 남아있으면 보라색으로 표시
a태그용 css를 별도로 만들어서 색, 밑줄들을 관리/
<a href="경로"> 경로이름 </a>
링크태그는 메뉴에도 쓰인다 (누르면 다른 화면으로 넘어가야 하니까)
경로입력할 때 http나 https 입력 필수!
https는 암호화해서 내용을 넘기기 때문에 http보다 안전하다.
https를 사용하려면 ssl인증서가 필요함. 그래서 해당 링크가 https인지 확실치 않다면 그냥 http로 연결
inline레벨 안에 inline레벨을 넣는 건 별로 좋지 않음.
inline(a태그)안에 inline(img태그) 넣는 건 어쩔 수 없고, 문제는 생기지 않지만 block(div태그)로 img를 감싸서 하는 것이 좋음
부모태그와 자식태그가 같으면 안됨.
구조 깨짐
a태그, p태그 특히 주의!
div태그와 span은 부모태그와 자식태그가 같아도 구조 깨지지 않음.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<a href="https://www.naver.com" target="_slef">네이버</a>
<a href="https://www.daum.net" target="_blank">다음</a>
<br>
<a href="#">현재페이지 어딘가로 이동</a>
<a href="https://www.naver.com" target="_slef">
<img src="./img/1.jpg" alt="">
</a>
</body>
</html>
페이지 내부이동시 주의사항
a태그의 href에 '#이동할요소id값/' 넣기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body{margin: 0;}
a{font-size: 30px;}
.sec{
width: 100%;
height: 100vh;
background-color: pink;
font-size: 100px;
font-weight: 900;
}
</style>
</head>
<body>
<a href="#sec1">menu1</a>
<a href="#sec2">menu2</a>
<a href="#sec3">menu3</a>
<a href="#sec4">menu4</a>
<div id="container">
<div id="sec1" class="sec">sec1</div>
<div id="sec2" class="sec">sec2</div>
<div id="sec3" class="sec">sec3</div>
<div id="sec4" class="sec">sec4</div>
</div>
</body>
</html>
a태그는 다 지우고 새로 그리니까 top버튼만들 때 href id값 안줘도됨(물론 정석은 id값 주는것)
최상단 광고배너를 넣을 때는 id값 안넣는게 좋다.
헤더 id잡고 만들었다가 광고배너까지 안올라가는 상황이 나올 수도 있으니까
display: block; 주고 width, height주면 된다.
눈에는 보이지 않지만 잡혀있는 공간이 있을 수 있으니 a태그는 따로 준다.
<style>
.logo{
width: 300px;
height: 100px;
background: url('../img/google_logo.jpg') no-repeat center /contain;
margin: 0 auto;
}
a{
display: block;
width : 100%;
height : 100%;
text-indent : -999px;
}
</style>
<div class="logo">
<a href="#">로고</a>
</div>
text-indent -999px 해서 왼쪽으로 빼야함.
오른쪽으로 빼면 스크롤생김.
input은 쓸 때 없는 padding값이 들어있게 돼서 width 100% 주면 넘치게 되니 box-sizing: border-box; 를 써야 한다.
a태그 사용할 때 화면을 싹 다 지우고 빠른 속도로 다시 그려준다
(내부 페이지 이동도 마찬가지)
그래서 깜빡하는 거임.
부드럽게 이동하는 효과를 줄 수가 없다 > 주려면 스크립트 줘야 함
a태그(인라인)안에 div(블록)일 때 a태그의 높이가 0이 될 때가 있다. (영역을 못잡고 있다)
(인라인 안에는 블록을 잡지 않는다. )
하지만 a태그는 특별하게 높이는 못잡아도 구조만 잘 잡아놓으면 기능적인 부분은 작동을 한다. (해당영역을 누르면 링크가 작동한다. )
link는 _blank(새탭에서 열림)로 하는 것이 좋다. 특히 다른 외부링크(ex. 유튜브)로 가서 보다가 타 업체로 넘어가는 경우가 있는데 self로 해놓으면 우리 링크는 끝나는 반면 blank로 해놓으면 그래도 탭이 남아있어서 다시 돌아올 확률이 있기 때문이다. (ux적인 문제)
a태그의 사이즈를 주지 않아도 괜찮긴 하다. 마우스커서 영역은 자식만큼 인식은 된다. 하지만 정석은 block레벨에 영역을 잡는 것이긴 하다.