웹 프론트엔드 JS 튜토리얼 offsetLeft, Left 및 clientLeft_Basic 지식의 차이점에 대한 간략한 분석

offsetLeft, Left 및 clientLeft_Basic 지식의 차이점에 대한 간략한 분석

May 16, 2016 pm 05:11 PM
left



obj가 HTML 컨트롤이라고 가정

obj.offsetTop은 offsetParent 속성, 정수, 단위 픽셀로 지정된 레이아웃 또는 상위 좌표를 기준으로 계산된 obj의 위쪽 위치를 나타냅니다.

obj.offsetLeft는 offsetParent 속성, 정수, 단위 픽셀로 지정된 레이아웃 또는 상위 좌표를 기준으로 계산된 obj의 왼쪽 위치를 나타냅니다.

obj.offsetWidth는 오버플로로 인해 표시되지 않는 부분을 제외한 obj 컨트롤 자체의 절대 너비, 즉 실제 너비, 정수, 단위 픽셀을 나타냅니다.

obj.offsetHeight는 오버플로로 인해 표시되지 않는 부분을 제외한 obj 컨트롤 자체의 절대 높이, 즉 실제로 차지하는 높이, 정수, 단위 픽셀을 의미합니다.

앞서 언급한 offsetParent에 대해 설명해 보겠습니다.

offsetParent 객체의 offsetTop 및 offsetLeft 속성을 정의하는 컨테이너 객체에 대한 참조를 가져옵니다. offsetTop과 offsetParent는 매우 복잡하고, 브라우저마다 해석이 다르고, 해석도 또 다르기 때문에 일반적으로 브라우저에서 컨트롤의 절대 위치는 이 둘을 통해 얻을 수 있다는 점만 이해하면 됩니다.

위 속성은 FireFox에서도 유효합니다.

추가로, 여기서 말하는 것은 document.body가 아닌 HTML 컨트롤의 속성 값을 의미합니다. document.body의 값은 브라우저마다 다르게 해석됩니다(실제로 대부분의 환경은 오프셋의 다른 해석이 아니라 .body의 다른 해석으로 인해 발생합니다.)


offsetTop은 상단 또는 외부 요소에서 HTML 요소의 위치를 ​​가져올 수 있으며 style.top도 사용할 수 있다는 것을 알고 있습니다. 둘 사이의 차이점은 다음과 같습니다.

1. offsetTop은 숫자를 반환하고, style.top은 숫자 외에도 px 단위를 반환합니다.

2. offsetTop은 읽기 전용이고 style.top은 읽기/쓰기가 가능합니다.

3. HTML 요소에 상단 스타일이 지정되지 않은 경우 style.top은 빈 문자열을 반환합니다.

offsetLeft 및 style.left, offsetWidth 및 style.width, offsetHeight 및 style.height의 경우에도 마찬가지입니다.


clientHeight
클라이언트 높이에 대해 누구도 이의를 제기하지 않습니다. 그들은 모두 콘텐츠의 가시 영역의 높이라고 생각합니다. 콘텐츠는 페이지 브라우저에서 볼 수 있습니다. 일반적으로 마지막 도구 모음 아래부터 상태 표시줄 위까지의 영역은 페이지 콘텐츠와 아무 관련이 없습니다.

offsetHeight
IE와 Opera는 offsetHeight = clientHeight 스크롤 막대 테두리라고 믿습니다.
NS와 FF는 offsetHeight를 웹페이지 콘텐츠의 실제 높이로 간주하며, 이는 clientHeight보다 작을 수 있습니다.

scrollHeight
IE와 Opera는 scrollHeight를 웹 페이지 콘텐츠의 실제 높이로 간주하며, 이는 clientHeight보다 작을 수 있습니다.
NS와 FF는 scrollHeight를 웹페이지 콘텐츠의 높이로 간주하지만 최소값은 clientHeight입니다.

간단히 말하면
clientHeight는 브라우저를 통해 콘텐츠가 보이는 영역의 높이입니다.
NS와 FF는 offsetHeight와 scrollHeight가 모두 웹페이지 콘텐츠 높이라고 생각하지만, 웹페이지 콘텐츠 높이가 clientHeight보다 작거나 같은 경우 scrollHeight 값은 clientHeight이고 offsetHeight는 clientHeight보다 작을 수 있습니다.
IE와 Opera는 offsetHeight가 가시 영역 clientHeight 스크롤 막대와 테두리라고 믿습니다. scrollHeight는 웹페이지 콘텐츠의 실제 높이입니다.

마찬가지로
clientWidth, offsetWidth, scrollWidth에 대한 설명은 위와 동일하며 높이를 너비로 바꾸면 됩니다.

설명
위 내용은 DTD HTML 4.01 Transitional을 기준으로 한 것입니다. DTD XHTML 1.0 Transitional이라면 의미가 달라지겠지만, XHTML에서는 이 세 값이 같은 값입니다. 그리고 그들은 모두 실제 콘텐츠를 나타냅니다. 대부분의 새 버전의 브라우저는 페이지에 지정된 DOCTYPE을 기반으로 다양한 해석기 활성화를 지원합니다.

scrollTop은 "스크롤된" 높이 값입니다. 예:

코드 복사 코드는 다음과 같습니다.


p에 scrollTop을 설정한 경우 해당 내용이 완전히 표시되지 않을 수 있습니다.




바깥쪽 요소 p에 scrollTop이 설정되어 있으므로 안쪽 요소가 롤업되고, 롤업된 부분이 스크롤탑이 됩니다.

scrollLeft도 비슷합니다.

우리는 이미 offsetHeight가 해당 요소의 너비이고, scrollHeight가 내부 요소의 숨겨진 부분을 포함한 내부 요소의 절대 너비라는 것을 알고 있습니다. 위의 경우 p의 scrollHeight는 300이고 p의 offsetHeight는 100입니다.

scrollWidth도 비슷합니다.

IE 및 FireFox는 완전히 지원하지만 Netscape 8 및 Opera 7.6은 scrollTop, scrollLeft(document.body.scrollTop, document.body.scrollLeft 제외)를 지원하지 않습니다.

1.clientHeight, clientWidth:
이 두 속성은 요소 콘텐츠의 픽셀 높이와 너비를 대략적으로 표시합니다. 이론적으로 이러한 측정에서는
를 통해 추가된 내용을 고려하지 않습니다. 스타일 시트 요소의 여백, 테두리 등

2.clientLeft, clientTop:
이 두 가지는 요소 주위의 테두리 두께를 반환합니다. 테두리를 지정하지 않거나 요소를 배치하지 않으면 해당 값은 0입니다.

3.scrollLeft,scrollTop:
요소가 스크롤 가능한 경우 이 두 속성을 사용하여 요소가 가로 및 세로 방향으로 얼마나 스크롤되었는지 확인할 수 있습니다. 단위는 픽셀입니다.
스크롤할 수 없는 요소의 경우 이 값은 항상 0입니다.

4.scrollHeight,scrollWidth:
페이지에 표시되는 개체 수에 관계없이 전체를 가져옵니다.

5.style.left:
포함 직사각형의 왼쪽 가장자리에서 위치 지정 요소의 오프셋

6.style.pixelLeft:
위치가 지정된 요소의 왼쪽 테두리 오프셋의 정수 픽셀 값을 반환합니다. 왜냐하면 속성의 픽셀이 아닌 값은 단위를 포함하는 문자열을 반환하기 때문입니다. 예: 30px 이 속성을 사용하여 픽셀 단위로 값을 개별적으로 처리합니다.

7.style:posLetf:
해당 스타일 시트 요소에서 지정한 단위와 상관없이 위치가 지정된 요소의 왼쪽 테두리 오프셋 숫자 값을 반환합니다. 속성의 값은 단위 문자열을 포함하는 값을 반환합니다. 예를 들어 1.2em

top, pixelTop, posTop은 단지 일부 비유일 뿐입니다.

LEFT: 왼쪽에서 오른쪽으로 이동한 위치, 즉 위젯과 화면 왼쪽 가장자리 사이의 거리입니다.

clientLeft 객체의 offsetLeft 속성 값과 위젯 사이의 거리를 반환합니다. 현재 창 왼쪽의 실제 값

offsetLeft 상위 개체의 레이아웃이나 좌표를 기준으로 개체의 왼쪽 값을 반환합니다. 상위 개체의 왼쪽 위 모서리를 원점으로 사용합니다. 좌표, X 및 Y 축의 양의 방향인 오른쪽과 아래쪽의 x 좌표

pixelLeft 창 왼쪽을 기준으로 개체의 위치를 ​​설정하거나 반환합니다.

scrollWidth는 가장자리 너비를 제외한 개체의 실제 콘텐츠 너비이며 개체의 콘텐츠 양에 따라 변경됩니다(콘텐츠가 너무 많으면 개체 너비가 변경될 수 있음) 실제 너비).

clientWidth는 스크롤 막대 및 기타 가장자리를 제외한 개체의 표시 너비이며 창의 표시 크기에 따라 변경됩니다.

offsetWidth는 스크롤 막대 및 기타 가장자리를 포함하여 개체의 표시되는 너비이며 창의 표시 크기에 따라 변경됩니다.

IE6.0, FF1.06:
clientWidth = 너비 패딩
clientHeight = 높이 패딩
offsetWidth = 너비 패딩 테두리
offsetHeight = 높이 패딩 테두리
IE5.0/5.5:
clientWidth = 너비 - 테두리
clientHeight = 높이 - 테두리
offsetWidth = 너비
offsetHeight = 높이
(설명할 필요: CSS의 여백 속성은 clientWidth, offsetWidth, clientHeight, offsetHeight는 관련이 없습니다)

offsetwidth: 상위 요소를 기준으로 한 요소의 오프셋 너비입니다. 테두리 패딩 너비와 동일
clientwidth: 요소의 표시 너비입니다. 패딩 너비와 동일
scrollwidth: 요소의 너비이며 스크롤 부분을 포함합니다.
offsetLeft: 자체 offsetParent 요소에 상대적인 Html 요소의 위치
scrollLeft: 현재 가로 스크롤 작업의 좌표 값을 반환하고 설정합니다.

복사 코드 코드는 다음과 같습니다.

onclick="경고( 'offsetLeft:' this.offsetLeft)">



웹페이지로 저장하고 실행한 후 버튼 클릭, 스크롤바 이동
div를 클릭하면 b 상대 위치가 먼저 팝업됩니다. a 위치에 창을 기준으로 a 상대 위치가 팝업됩니다
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

내 자신의 JavaScript 라이브러리를 어떻게 작성하고 게시합니까? 내 자신의 JavaScript 라이브러리를 어떻게 작성하고 게시합니까? Mar 18, 2025 pm 03:12 PM

기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

브라우저에서 성능을 위해 JavaScript 코드를 최적화하려면 어떻게해야합니까? 브라우저에서 성능을 위해 JavaScript 코드를 최적화하려면 어떻게해야합니까? Mar 18, 2025 pm 03:14 PM

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

프론트 엔드 열 용지 영수증에 대한 차량 코드 인쇄를 만나면 어떻게해야합니까? 프론트 엔드 열 용지 영수증에 대한 차량 코드 인쇄를 만나면 어떻게해야합니까? Apr 04, 2025 pm 02:42 PM

프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

브라우저 개발자 도구를 사용하여 JavaScript 코드를 효과적으로 디버그하려면 어떻게해야합니까? 브라우저 개발자 도구를 사용하여 JavaScript 코드를 효과적으로 디버그하려면 어떻게해야합니까? Mar 18, 2025 pm 03:16 PM

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

누가 더 많은 파이썬이나 자바 스크립트를 지불합니까? 누가 더 많은 파이썬이나 자바 스크립트를 지불합니까? Apr 04, 2025 am 12:09 AM

기술 및 산업 요구에 따라 Python 및 JavaScript 개발자에 대한 절대 급여는 없습니다. 1. 파이썬은 데이터 과학 및 기계 학습에서 더 많은 비용을 지불 할 수 있습니다. 2. JavaScript는 프론트 엔드 및 풀 스택 개발에 큰 수요가 있으며 급여도 상당합니다. 3. 영향 요인에는 경험, 지리적 위치, 회사 규모 및 특정 기술이 포함됩니다.

소스 맵을 사용하여 조정 된 JavaScript 코드를 디버그하는 방법은 무엇입니까? 소스 맵을 사용하여 조정 된 JavaScript 코드를 디버그하는 방법은 무엇입니까? Mar 18, 2025 pm 03:17 PM

이 기사는 소스 맵을 사용하여 원래 코드에 다시 매핑하여 미니어링 된 JavaScript를 디버그하는 방법을 설명합니다. 소스 맵 활성화, 브레이크 포인트 설정 및 Chrome Devtools 및 Webpack과 같은 도구 사용에 대해 설명합니다.

Console.log 출력 결과의 차이 : 두 통화가 다른 이유는 무엇입니까? Console.log 출력 결과의 차이 : 두 통화가 다른 이유는 무엇입니까? Apr 04, 2025 pm 05:12 PM

Console.log 출력의 차이의 근본 원인에 대한 심층적 인 논의. 이 기사에서는 Console.log 함수의 출력 결과의 차이점을 코드에서 분석하고 그에 따른 이유를 설명합니다. � ...

초보자를위한 타이프 스크립트, 2 부 : 기본 데이터 유형 초보자를위한 타이프 스크립트, 2 부 : 기본 데이터 유형 Mar 19, 2025 am 09:10 AM

엔트리 레벨 타입 스크립트 자습서를 마스터 한 후에는 TypeScript를 지원하고 JavaScript로 컴파일하는 IDE에서 자신의 코드를 작성할 수 있어야합니다. 이 튜토리얼은 TypeScript의 다양한 데이터 유형으로 뛰어납니다. JavaScript에는 NULL, UNDEFINED, BOOLEAN, 번호, 문자열, 기호 (ES6에 의해 소개 됨) 및 객체의 7 가지 데이터 유형이 있습니다. TypeScript는이 기반으로 더 많은 유형을 정의 하며이 튜토리얼은이 모든 튜토리얼을 자세히 다룹니다. 널 데이터 유형 JavaScript와 마찬가지로 Null in TypeScript

See all articles