본문 바로가기
부트캠프

멋쟁이사자처럼 프론트엔드 부트캠프 14기 - Day 42 (요소의 크기와 위치 정보, DOM 탐색)

by 나른한_꼬리_ 2025. 6. 25.
반응형

멋쟁이사자처럼 프론트엔드 부트캠프 14기 - Day 42 (요소의 크기와 위치 정보, DOM 탐색)

 

목차

 

요소의 크기와 위치 정보

요소의 너비나 높이 값을 알아야 할 때가 있다. 또는 문서에서 요소가 어디에 있는지 알아야 할 때도 있다. 그럴 때는 getBoundingClientRect() 메서드를 사용한다.

const DOMRect = 요소.getBoundingClientRect()

 

getBoundingClientRect() 메서드로 가져오는 DOM 요소의 Rect 정보는 아래와 같다.

  • left (x 값과 같다)
  • right
  • top (y 값과 같다)
  • bottom
  • width (right - left)
  • height (bottom - top)

 

DOM 탐색(Traversal)

인접한 요소에서 하나의 다른 요소를 선택하는 것을 DOM 트래버서(Traversal, 탐색)라고 한다. 한 요소에서 다른 요소로 이동할 때 querySelector() 메서드를 사용해서 문서 전체를 탐색하는 것보다 DOM 탐색을 아래, 위, 옆으로 하는 것이 더 효율적이다.

 

 

아래로 탐색

아래로 탐색하면 자식(또는 자손) 요소를 선택할 수 있다.

  1. querySelector(), querySelectorAll() 메서드: document에서 찾는 것보다는 element 단위에서 찾는 것이 더 효율적이다.
  2. children 속성: 요소의 직계 자식을 선택한다. children 속성은 HTMLCollection(라이브 컬렉션)을 반환해서 forEach() 메서드를 사용하려면 먼저 Array.from()을 사용해서 배열로 복사해야 한다.
  3. firstElementChild, lastElementChild 속성: 요소의 직계 자식 중 첫 번째나 마지막 요소를 선택한다.

 

 

위로 탐색

위로 탐색하면 부모(또는 조상) 요소를 선택할 수 있다.

  1. parentElement 속성: 요소의 한 단계 위 부모 요소를 선택한다.
  2. closest() 메서드: 여러 단계 위에 있는 상위 요소를 찾을 때 사용한다. 인수로는 선택자를 전달하고, 전달된 선택자와 일치하는(자신 포함) 가장 가까운 상위 요소를 참조한다.

 

옆으로 탐색

옆으로 탐색하면 형제 요소를 선택할 수 있다.

  1. previousElementSibling 속성: 요소의 이전 형제 요소를 선택한다.
  2. nextElementSibling 속성: 요소의 다음 형제 요소를 선택한다.
  3. parentElement, children 및 index 조합: 특정 위치의 형제 요소를 선택한다.

 

 

오늘 하루를 돌아보며

탭과 캐러셀을 만드는 실습을 진행했다. 지난 주에 오프 캔버스와 모달 다이얼로그를 만들 때보다 무엇을 해야 하는지 조금을 알 것 같았다. 지난 주까지만 하더라도 어디서부터 시작해야 할지, 뭘 해야 할지 머리가 텅 비어버린 것 같았는데, 오늘은 그래도 뭐라도 할 수 있었다. 지난 주보다 성장했다!

 

탭을 만들 때는 영 감을 못 잡고, 조건을 어떻게 줘야 할지 고민했는데, 강사님과 함께 만들면서 내내 '아, 맞다!'를 반복했다. 그만큼 자바스크립트가 익숙하지 않다는 증거겠지? 그래도 탭을 한 번 만들고 나니 캐러셀을 만들 때는 조금 더 수월했다. 언제 어떤 조건을 줘야 하고, 조건에 따라 어떤 기능을 해야 하는지 감이 잡혔다. 하나씩 천천히 해나갔더니 생각보다 빨리 완성했다!

 

여전히 부족하고 낯설지만, 자꾸 반복해서 실습하고 연습하면 익숙해질 것이다. 익숙해지면 지금보다 더 빨리 만들 수 있을 것이고, 더 다양한 기능도 수월하게 만들어낼 수 있을 것이다. 매일 매일 성장하는 나를 기대하며 오늘도 힘내자!!!

 

반응형