일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 백준 1018 javascript
- JavaScript
- 백준 2503 타입스크립트
- 알고리즘
- 백준 1449 nodejs
- 백준 11047 typescript
- 백준 11047 nodejs
- 백준 1449 자바스크립트
- 백준 2503 javascript
- 백준 2503 typescript
- 백준 1449
- 백준 2503 자바스크립트
- 백준 11047 자바스크립트
- 백준 1449 javascript
- 백준 4796 nodejs
- 백준 4796 캠핑
- 백준 4796 자바스크립트
- 백준 11047 javascript
- 백준 11047 타입스크립트
- 백준 1018 typescript
- CSS
- 백준 1018 nodejs
- 백준 1449 타입스크립트
- 백준 1018 타입스크립트
- 백준 1449 노드
- 백준 4796 타입스크립트
- 백준 4796 javascript
- 백준 10448 javascript
- 백준 1018 자바스크립트
- 백준 2503 nodejs
- Today
- Total
POTATO THAT WANT TO BE HUMAN
[JavaScript] 브라우저와 요소의 크기(너비, 높이) 구하기 본문
먼저 브라우저의 너비와 높이를 구하는 방법에 대해 살펴보겠습니다.
1. window.innerWidth / window.innerHeight
2. window.outerWidth / window.outerHeight
3. window.screen.width / window.screen.height
🤔 window.innerWidth / window.innerHeight
window.innerWidth는 브라우저 화면의 너비, window.innerHeight는 브라우저 화면의 높이를 나타냅니다.
전체 브라우저에서 스크롤바, 상단바, 개발자도구창 등을 모두 제외한 화면만의 너비와 높이를 출력합니다.
🤔 window.outerWidth / window.outerHeight
window.outerWidth는 브라우저 전체의 너비, window.innerHeight는 브라우저 전체의 높이를 나타냅니다.
🤔 window.screen.width / window.screen.height
window.screen.width는 전체 모니터의 너비, window.screen.height는 전체 모니터의 높이를 나타냅니다.
다음으로 요소의 너비와 높이를 구하는 방법에 대해 살펴보겠습니다.
1. element.clientWidth / element.clientHeight
2. element.offsetWidth / element.offsetHeight
3. element.scrollWidth / element.scrollHeight
4. element.getBoundingClientRect()
🤔 element.clientWidth / element.clientHeight
element.clientWidth 는 padding까지 포함된 요소의 너비를, element.clientHeight 는 padding까지 포함된 요소의 높이를 나타냅니다.
🤔 element.offsetWidth / element.offsetHeight
element.offsetWidth 는 border까지 포함된 요소의 너비를, element.offsetHeight 는 border까지 포함된 요소의 높이를 나타냅니다.
🤔 element.scrollWidth / element.scrollHeight
element.scrollWidth, element.scrollHeight는 사용자에게 보여지는 가시적인 부분의 너비와 높이가 아닌 content 전체 영역의 너비와 높이를 나타냅니다.
🤔 element.getBoundingClientRect()
getBoundingClientRect는 요소의 너비, 높이, position 값 등을 받아옵니다.
우리가 볼 요소의 너비와 높이를 받아올 때에는 border까지 포함된 요소의 너비와 높이를 받아옵니다.
이는 offsetWidth, offsetHeight와 동일합니다. 차이점이 뭘까요?
offsetWidth, offsetHeight는 본래 레이아웃의 사이즈를 받아옵니다.
getBoundingClientRect를 통해 받아온 너비/높이는 실제로 화면에 렌더링된 값을 받아옵니다. (transform등의 효과까지 모두 고려된 값)
getBoundingClientRect()에서 원하는 값을 가져올 때에는
element.getBoundingClientRect().속성값 으로 가져올 수 있습니다.
(ex. element.getBoundingClientRect().width)
정사각형이 있습니다. 이 정사각형의 스타일은 다음과 같습니다.
div {
width: 200px;
height: 200px;
border: 5px solid #329;
padding: 20px;
margin: 30px;
}
그리고 콘솔창에 이 div의 width값을 다양한 방법으로 찍어보겠습니다.
이렇게 clientWidth는 padding까지 포함된 240을, offsetWidth는 border까지 포함된 250을 받아옵니다.
여기서 박스에 스크롤이 생기도록 div안에 아무 의미없는 글자들을 넣고 overflow: auto 처리를 해보겠습니다.
이렇게 박스에 스크롤이 생긴 상태에서 콘솔창에 scrollHeight를 찍어보면 다음과 같은 결과가 나옵니다.
scrollHeight는 박스의 보여지는 높이가 아닌 content 전체의 높이를 받아옵니다.
getBoundingClientRect()를 통해 가져온 width값도 border을 포함한 250을 받아옵니다.
'FRONTEND > JavaScript' 카테고리의 다른 글
[JavaScript] filter 사용하기 (0) | 2022.06.13 |
---|---|
[JavaScript] 비구조화 할당 (0) | 2022.06.10 |
[JavaScript] 이벤트 트리거 dispatchEvent() (0) | 2022.06.01 |
[JavaScript] 변수와 호이스팅 (0) | 2022.05.24 |
[JavaScript] script 태그 삽입 위치(head or body) (0) | 2022.05.22 |