Bagaimanakah saya boleh mendapatkan semula semua peraturan CSS yang mempengaruhi elemen dalam JavaScript tulen?

DDD
Lepaskan: 2024-11-26 10:56:11
asal
260 orang telah melayarinya

How can I retrieve all CSS rules affecting an element in pure JavaScript?

Menentukan Semua Peraturan CSS yang Mempengaruhi Elemen dalam JavaScript Tulen

Dalam pembangunan web, memeriksa helaian gaya mentah yang dimuatkan oleh penyemak imbas hanya menyediakan sebahagian pemahaman tentang peraturan CSS yang digunakan pada elemen. Ini kerana penyemak imbas menyusun semua peraturan CSS dan menerapkannya pada elemen berdasarkan warisan, menghasilkan pepohon warisan kompleks yang tidak kelihatan serta-merta dalam lembaran gaya.

Untuk pembangun yang mencari penyelesaian JavaScript tulen untuk menghasilkan semula ciri ini, mendapatkan semula maklumat terperinci tentang peraturan CSS yang dikira yang mempengaruhi elemen menimbulkan cabaran yang ketara tanpa bergantung pada pemalam penyemak imbas tambahan. Walau bagaimanapun, berikut ialah penyelesaian yang komprehensif:

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

Fungsi ini mengambil elemen sebagai input dan mengembalikan tatasusunan yang mengandungi teks CSS untuk setiap peraturan yang sepadan.

Untuk menggambarkan penggunaannya, pertimbangkan perkara berikut HTML dan CSS:

HTML

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

<p>
Salin selepas log masuk

JavaScript

var rules = css(document.getElementById('description'));
console.log(rules); // ['color: red;', 'font-size: 20px;']
Salin selepas log masuk

Dalam contoh ini, fungsi mengenal pasti dua CSS yang sepadan peraturan: satu menyatakan warna merah untuk semua

elemen dan satu lagi menetapkan saiz fon kepada 20 piksel untuk elemen dengan ID #description.

Tatasusunan yang dikembalikan membenarkan penerokaan lanjut bagi setiap butiran peraturan dengan merujuk dokumentasi objek CSSRule. Pendekatan ini menyediakan kaedah yang komprehensif dan serasi penyemak imbas untuk mengekstrak peraturan CSS yang dikira yang digunakan pada elemen tanpa memerlukan pemalam tambahan, membolehkan pembangun memeriksa dengan mendalam dan menyahpepijat gaya mereka.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mendapatkan semula semua peraturan CSS yang mempengaruhi elemen dalam 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan