언어 및 도구들 공부/HTML, CSS

#으로의 링크 이동

Dr.Mlem 2024. 11. 27. 11:55

St2veK: @workspace /explain 어떤 링크가 연결된 href 값이 #면 자기 자신으로 가는 것인가? 
만약, 그 # 뒤에 숫자나 다른 문자가 들어가면 문제가 되는가?



GitHub Copilot : href 속성에 `#`이 들어가면 페이지 내에서 해당 ID를 가진 요소로 이동합니다. 

예를 들어, href="#section1"은 ID가 `section1`인 요소로 이동합니다. 만약 href="#"이면 페이지의 최상단으로 이동합니다.

`#` 뒤에 숫자나 다른 문자가 들어가도 문제가 되지 않습니다. 이는 여전히 페이지 내의 특정 ID를 가진 요소로 이동하는 역할을 합니다. 


예를 들어, href="#123"은 ID가 `123`인 요소로 이동합니다.

현재 선택된 코드에서,
(==> 10-09 image_ex/index.js 의 89번째 줄,
<a href={`${i}`} onClick={onThumbnailClick}>)


href={${i}`}`는 변수 i의 값에 따라 동적으로 링크를 생성합니다. 만약 i가 `#`로 시작하는 문자열이라면, 해당 ID로 이동하게 됩니다.

예를 들어:

const i = "#section1";
<a href={`${i}`} onClick={onThumbnailClick}>


이 경우, 링크를 클릭하면 ID가 `section1`인 요소로 이동합니다.

따라서 `#` 뒤에 숫자나 다른 문자가 들어가도 문제가 되지 않습니다. 
다만, 해당 ID가 존재하지 않으면 페이지 최상단으로 이동할 수 있습니다.



St2veK: 그러니까, html 페이지에 123이라는 id를 가지는 태그가 없는데, 
a태그가 <a href="#123">#123</a> 이렇게 되어있다면, 
123이라는 id값을 찾지 못하고, a태그가 있는 페이지 최상단으로 이동하는 것 뿐이라는 것이지?



GitHub Copilot: 네, 맞습니다. HTML 페이지에 `id="123"`을 가지는 태그가 없을 경우, 
`<a href="#123">#123</a>` 링크를 클릭하면 해당 ID를 찾지 못하고 페이지의 최상단으로 이동하게 됩니다. 
이는 브라우저의 기본 동작입니다. 

따라서, href 속성에 지정된 ID가 존재하지 않으면 페이지 최상단으로 이동하는 것이 맞습니다.