> 웹 프론트엔드 > JS 튜토리얼 > 브라우저 전체에서 JavaScript의 HTML 요소 스타일 값을 검색하는 방법은 무엇입니까?

브라우저 전체에서 JavaScript의 HTML 요소 스타일 값을 검색하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-30 05:50:09
원래의
827명이 탐색했습니다.

How to Retrieve HTML Element Style Values in JavaScript Across Browsers?

JavaScript에서 HTML 요소 스타일 값 검색

아래 그림과 같이 스타일 태그를 통해 정의된 스타일이 있는 요소의 경우:

<style>
#box {
  width: 100px;
}
</style>

<div>
로그인 후 복사

JavaScript를 사용하여 스타일 값을 검색하려면 element.style 속성만 사용하면 됩니다. 인라인 또는 JavaScript 정의 스타일만 제공하므로 충분하지 않습니다.

계산된 스타일

요소의 계산된 스타일에 액세스해야 합니다. 는 상위 요소에서 상속하고 적용된 CSS 규칙을 고려한 후 적용된 실제 스타일을 나타냅니다. JavaScript에서는 두 가지 방법을 사용하여 계산된 스타일을 얻을 수 있습니다:

1. DOM 표준(기타 브라우저):

document.defaultView.getComputedStyle(element, null).getPropertyValue(propertyName);
로그인 후 복사

2. IE 특정:

element.currentStyle[propertyName];
로그인 후 복사

그러나 IE는 camelCase 속성 이름(예: "font-Size")을 사용하고 픽셀이 아닌 단위로 크기를 반환할 수 있지만 표준 방법은 하이픈으로 연결된 속성 이름( 예: "font-size") 항상 픽셀 값을 제공합니다.

크로스 브라우저 해결 방법

크로스 브라우저 호환 방식으로 계산된 스타일을 검색하려면 다음 기능을 사용하세요.

function getStyle(element, property) {
  var value, defaultView = (element.ownerDocument || document).defaultView;
  // Sanitize property name for different browsers
  property = property.replace(/([A-Z])/g, "-").toLowerCase();

  if (defaultView && defaultView.getComputedStyle) {
    return defaultView.getComputedStyle(element, null).getPropertyValue(property);
  } else if (element.currentStyle) {
    // Convert camelCase property name to hyphenated
    property = property.replace(/\-(\w)/g, function(str, letter) {
      return letter.toUpperCase();
    });

    value = element.currentStyle[property];
    if (/^\d+(em|pt|%|ex)?$/i.test(value)) {
      return (function(value) {
        var oldLeft = element.style.left, oldRsLeft = element.runtimeStyle.left;
        element.runtimeStyle.left = element.currentStyle.left;
        element.style.left = value || 0;
        value = element.style.pixelLeft + "px";
        element.style.left = oldLeft;
        element.runtimeStyle.left = oldRsLeft;
        return value;
      })(value);
    }
    return value;
  }
}
로그인 후 복사

위 내용은 브라우저 전체에서 JavaScript의 HTML 요소 스타일 값을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿