>웹 프론트엔드 >CSS 튜토리얼 >순수 JavaScript를 사용하여 요소에 적용 가능한 모든 CSS 규칙을 검색하려면 어떻게 해야 합니까?

순수 JavaScript를 사용하여 요소에 적용 가능한 모든 CSS 규칙을 검색하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-28 22:56:10350검색

How Can I Retrieve All Applicable CSS Rules for an Element Using Pure JavaScript?

JavaScript를 사용하여 요소에 적용할 수 있는 CSS 규칙 찾기

웹 개발에서는 특정 클래스나 ID의 CSS 요소에 액세스하는 것이 일반적인 작업입니다. 종종 도구와 API의 도움을 받습니다. 그러나 브라우저는 요소의 모양을 결정하기 위해 다양한 소스에서 적용 가능한 모든 CSS 규칙을 컴파일합니다. 브라우저 플러그인에 의존하지 않고 순수 JavaScript에서 이 기능을 어떻게 복제할 수 있습니까?

계산된 CSS 규칙 식별

다음 HTML 및 CSS 예를 고려하세요.

<style type="text/css">
    p { color :red; }
    #description { font-size: 20px; }
</style>

<p>

이 경우 p#description 요소는 빨간색과 글꼴 크기라는 두 가지 CSS 규칙을 상속합니다. 20px. 목표는 이러한 규칙의 출처를 확인하는 것입니다.

JavaScript 구현

이를 달성하기 위해 다음 JavaScript 기능을 사용할 수 있습니다.

function css(el) {
    var sheets = document.styleSheets, ret = [];
    el.matches = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector || el.oMatchesSelector;
    for (var i in sheets) {
        var rules = sheets[i].rules || sheets[i].cssRules;
        for (var r in rules) {
            if (el.matches(rules[r].selectorText)) {
                ret.push(rules[r].cssText);
            }
        }
    }
    return ret;
}

사용법

var rules = css(document.getElementById('elementId'));

규칙 변수 이제 선택한 요소에 적용 가능한 모든 CSS 규칙의 배열이 포함됩니다.

참고:

이 함수는 Element.matches() 메서드를 사용합니다. 이전 브라우저에 대한 브라우저 간 호환성 폴리필. 그러나 추가 브라우저 플러그인 없이 CSS 규칙을 식별하는 빠르고 효율적인 방법을 제공합니다.

위 내용은 순수 JavaScript를 사용하여 요소에 적용 가능한 모든 CSS 규칙을 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.