첫 번째 경우는 #div1{width: 120px;}처럼 스타일 시트에 너비와 높이를 쓰는 경우입니다. 이 경우 #div1.style.width를 통해서는 너비를 얻을 수 없고, #div1.offsetWidth를 통해서는 너비를 얻을 수 있다.
두 번째 경우는 style="width: 120px;"처럼 너비와 높이를 인라인으로 쓰는 경우입니다. 이 경우 위의 두 가지 방법을 통해 너비를 얻을 수 있습니다. (인라인이란 html 태그에 스타일을 직접 쓰는 것입니다)
요약하자면, 스타일 시트에 스타일을 쓰든 인라인에 쓰든 관계없이 id.offsetWidth, id.offsetHeight가 있기 때문에 다음과 같은 경우에 가장 좋습니다. 우리는 요소의 너비와 높이를 얻습니다. 이 두 속성을 사용하는 것은 쉽습니다. 속성이 인라인 스타일로 작성되지 않으면 id.style.atrr을 통해 가져올 수 없습니다.
현재 프런트 엔드 제작에서는 스타일이 스타일에 직접 작성되는 경우가 거의 없으며 항상 스타일 시트에 작성됩니다. 가져오려는 스타일에 해당 스타일이 없는 경우(#div1.style.width가 #div1.offsetWidth에 해당하는 것처럼), 브라우저를 사용하지 않고 별도로 스타일 시트의 속성만 가져올 수 있습니다. "JS Get Style" 속성" 등에 대해 설명합니다.
코드:
var o = document.getElementById("view"); var h = o.offsetHeight; //높이 var w = o.offsetWidth; p>
확장 정보:
js 프로그래밍:
JavaScript는 실행을 위해 클라이언트에 보내기 전에 소스 코드를 컴파일할 필요가 없습니다. 브라우저가 해석하고 실행할 수 있도록 텍스트 형식의 문자 코드가 브라우저로 전송됩니다. 리터럴 번역 언어의 약점은 보안성이 낮다는 점이며, JavaScript에서는 실행할 수 없으면 다음 언어도 실행할 수 없습니다. 해결책은 try{}catch(){}를 사용하는 것입니다.
자바스크립트는 주류 엔진이 코드를 로드하고 실행될 때마다 해석하기 때문에 문자 그대로의 번역 언어로 분류됩니다. V8은 실행을 시작하기 전에 모든 코드를 해석하는 반면 다른 엔진은 이를 한 줄씩 해석합니다(SpiderMonkey는 성능 향상을 위해 해석된 명령을 일시적으로 저장하는데 이를 실시간 컴파일이라고 합니다). Javascript로 작성되었습니다(SpiderMonkey는 C로 작성되었습니다).
따라서 서로 다른 테스트에서 두 가지의 성능에는 장점과 단점이 있습니다. 이에 상응하는 것이 C언어와 같은 컴파일 언어이다. 컴파일 언어로 작성된 프로그램을 실행하려면 먼저 컴파일을 해서 코드를 기계어 코드로 컴파일한 후 실행해야 한다.
참고 자료: javascript_바이두 백과사전