搜尋
首頁web前端css教學實現CSS覆蓋率測試腳本的程式碼

這篇文章主要介紹了關於實現CSS覆蓋率測試腳本的程式碼,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

這裡我們只求CSS規則的覆蓋率,所以訪問querySelectorAll().length 即可。透過排序就可看出各個CSS使用情況

document.styleSheets裡保存了目前頁面上所有CSS規則的集合。透過它可以遍歷出頁面

var usage = [];
var sheets = document.styleSheets;
for(var i = sheets.length - 1; i != -1; i--) {
    var rules = sheets[i].rules;

    for(var j = rules.length - 1; j != -1; j--) {
        var rule = rules[j];
        var text = rule.selectorText;

        usage.push({name: text, count: document.querySelectorAll(text).length});
    }
}
usage.sort(function(a, b){return a.count - b.count});
for(var i = usage.length - 1; i != -1; i--) {
    console.log("选择器:" + usage[i].name + "\n\t匹配数:" + usage[i].count);
}

呼出F12,把程式碼黏到console裡回車即可。

當然由於權限問題,外部匯入的CSS無論如何都存取不到,暫時先不考慮了。至於不支援styleSheets的破IE嘛,可以考慮用expression或是behaviour.htc,改天試試看。
純JS實作就到此。以後配合本地程式實現外部CSS的分析。

順便貼個測試結果:

哪些CSS沒用到一目了然:

當然,0匹配並不代表它就是沒用的。最典型的例子就是:hover,只有滑鼠移上去才會匹配。還有透過className控制,[attr=],#動態ID,動態元素。 。 。 。等等等等的樣式都不是輕易能搭配到。

所以以上程式碼意義不大,而且目前主​​流瀏覽器都內建Profiles功能,並且能即時追蹤選擇器匹配的元素數,所以做個IE版本的才有些意義:)

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

把JS與CSS寫在同一個檔案裡的書寫方法

關於CSS程式設計的OOCSS與SMACSS設計模式的介紹

#

以上是實現CSS覆蓋率測試腳本的程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
用線圈貨幣化(並刪除支持者的廣告)用線圈貨幣化(並刪除支持者的廣告)Apr 18, 2025 am 10:13 AM

過去,我過去嘗試過一些基於“小費的微付款”網站。他們來來去去。那很好。從發布者的角度來看,它

響應iframe響應iframeApr 18, 2025 am 10:10 AM

這是您在網站上做出響應式響應所需的所有事情。它比外觀更棘手,CSS肯定涉及。

CSS-IN-JS的不同觀點CSS-IN-JS的不同觀點Apr 18, 2025 am 10:07 AM

有些人完全討厭CSS-In-JS的想法。只是那個名字令人反感。硬不。造型不屬於JavaScript,它屬於CSS,這是

Google PagesPeed的工作原理:提高分數和搜索引擎排名Google PagesPeed的工作原理:提高分數和搜索引擎排名Apr 18, 2025 am 10:03 AM

在本文中,我們發現PagesPeed如何計算其關鍵速度分數。速度已成為提高收入和降低遺棄率的關鍵因素的關鍵因素,這已經不是什麼秘密了。現在,Google使用頁面速度作為排名因素,許多ORGA

用SVG產生逼真的玻璃效果用SVG產生逼真的玻璃效果Apr 18, 2025 am 10:01 AM

我愛上了SVG。當然,一開始代碼可能看起來很稠密,但是當您了解結果時,您會看到結果的美麗。獎金是

每周平台新聞:防止圖像元素,我們想要的網絡,SVG樣式沒有範圍每周平台新聞:防止圖像元素,我們想要的網絡,SVG樣式沒有範圍Apr 18, 2025 am 09:57 AM

在本週的瀏覽器新聞周綜述中

使用NetLify表單和NetLify功能來構建電子郵件註冊小部件使用NetLify表單和NetLify功能來構建電子郵件註冊小部件Apr 18, 2025 am 09:54 AM

建立和維護自己的網站是一個好主意。您不僅擁有自己的平台,而且還可以在此過程中嘗試Web技術。

每周平台新聞:CSS字體風格:斜,WebHint瀏覽器擴展程序,CSS模塊V1每周平台新聞:CSS字體風格:斜,WebHint瀏覽器擴展程序,CSS模塊V1Apr 18, 2025 am 09:53 AM

在本週的綜述中,可變字體獲得傾斜,新的瀏覽器擴展名以及CSS模塊的第一個版本。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境