Rumah > hujung hadapan web > tutorial css > Bagaimanakah Saya Boleh Dapatkan Semua Peraturan CSS Berkenaan untuk Elemen Menggunakan JavaScript Tulen?

Bagaimanakah Saya Boleh Dapatkan Semua Peraturan CSS Berkenaan untuk Elemen Menggunakan JavaScript Tulen?

Susan Sarandon
Lepaskan: 2024-12-28 22:56:10
asal
338 orang telah melayarinya

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

Mencari Peraturan CSS Berkenaan dengan Elemen dengan JavaScript

Dalam pembangunan web, mengakses elemen CSS kelas atau ID tertentu ialah tugas biasa, sering dibantu oleh alatan dan API. Walau bagaimanapun, penyemak imbas menyusun semua peraturan CSS yang berkenaan daripada pelbagai sumber untuk menentukan penampilan elemen. Bagaimanakah kita boleh meniru fungsi ini dalam JavaScript tulen, tanpa bergantung pada pemalam penyemak imbas?

Mengenal pasti Peraturan CSS Dikira

Pertimbangkan contoh HTML dan CSS berikut:

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

<p>
Salin selepas log masuk

Dalam kes ini, elemen p#description mewarisi dua peraturan CSS: warna merah dan saiz fon 20px. Matlamatnya adalah untuk menentukan asal usul peraturan ini.

Pelaksanaan JavaScript

Untuk mencapainya, kami boleh menggunakan fungsi JavaScript berikut:

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;
}
Salin selepas log masuk

Penggunaan

var rules = css(document.getElementById('elementId'));
Salin selepas log masuk

Pembolehubah peraturan kini akan mengandungi tatasusunan semua CSS peraturan yang terpakai pada elemen yang dipilih.

Nota:

Fungsi ini bergantung pada kaedah Element.matches(), yang memerlukan polyfill keserasian merentas penyemak imbas untuk penyemak imbas yang lebih lama . Walau bagaimanapun, ia menyediakan kaedah yang pantas dan cekap untuk mengenal pasti peraturan CSS tanpa pemalam penyemak imbas tambahan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Semua Peraturan CSS Berkenaan untuk Elemen Menggunakan JavaScript Tulen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan