如何為特定DOM 元素提取HTML CSS JS:
與Web 開發人員一樣,檢查網站原始碼進行標記分析可能會很有洞察力。然而,當提取特定部分進行本地評估時,這個過程可能會變得乏味。複製單一元素和關聯的 CSS 可能很麻煩,而保存整個原始程式碼只是為了刪除不相關的程式碼,效率很低。
SnappySnippet:實用的解決方案
我開發 SnappySnippet 是為了解決這個問題。這個開源工具可以在 GitHub 上找到,可以輕鬆地從最後檢查的 DOM 節點中提取 HTML CSS 程式碼。它還提供了與 CodePen 或 JSFiddle 直接共享程式碼的選項。
SnappySnippet 功能:
實施挑戰和解決方案:
創建 SnappySnippet 提出了幾個挑戰。以下是我克服它們的方法:
取得符合的 CSS 規則:
最初,我嘗試從 CSS 檔案中擷取原始 CSS 規則。然而,這種方法導致選擇器不一致,使得程式碼提取在 HTML 片段的上下文中無效。
使用 getCompulatedStyle():
我將焦點轉移到 getCompulatedStyle() ,但所需的 CSS 隔離仍然難以實現。
問題1:將CSS 與HTML 分離
為了將CSS 與HTML 分離,我為選定的節點分配了唯一的ID,並將其用於有針對性的CSS 規則建立。
問題 2:刪除預設值
getCompulatedStyle() 傳回元素的所有 CSS 屬性和值,包括空白值和瀏覽器預設值。我創建了一個空 iframe 來提取預設樣式並從 HTML 程式碼段中刪除無關緊要的屬性。
問題 3:僅保留簡寫屬性
我刪除了與簡寫等效的屬性增強程式碼可讀性。
問題4:刪除前綴屬性
過度使用前綴屬性(-webkit-等)帶來了挑戰。我決定消除這些屬性,因為它們的相關性不確定並且通常是不必要的。
問題 5:組合相同的 CSS 規則
重複的 CSS 規則透過將規則與相同的屬性和值,從而產生更緊湊的程式碼。
問題 6:清理並縮排 HTML
我利用 jquery-clean 函式庫重新格式化 HTML 程式碼,改進可讀性並刪除不需要的屬性。
問題 7:過濾器彈性
使用者可以選擇從「設定」選單停用過濾器,為特定用例提供彈性。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3