將CSS自定義屬性打造為圖標系統
毫無疑問,SVG是網站圖標的最佳格式。無論屏幕像素密度如何,它都能提供清晰的圖標;您可以更改SVG的懸停樣式,甚至可以使用CSS或JavaScript為圖標添加動畫效果。
在網頁中包含SVG的方法有很多,每種技術都有其自身的優缺點。過去幾年,我一直使用Sass函數直接在我的CSS中導入圖標,避免弄亂我的HTML標記。
我有一個包含所有圖標源代碼的Sass列表。然後,每個圖標都使用Sass函數編碼為data URI,並存儲在頁面根目錄的自定義屬性中。
簡而言之
我在這裡提供的是一個Sass函數,它可以直接在您的CSS中創建一個SVG圖標庫。
SVG源代碼由Sass函數編譯,該函數將其編碼為data URI,然後將圖標存儲在CSS自定義屬性中。然後,您可以像使用外部圖像一樣,在CSS中的任何位置使用任何圖標。
這是從我的個人網站代碼中直接提取的一個示例:
<code>.c-filters__summary h2:after { content: var(--svg-down-arrow); position: relative; top: 2px; margin-left: auto; animation: closeSummary .25s ease-out; }</code>
演示
Sass結構
<code>/* 所有圖標源代碼 */ $svg-icons: ( burger: '<svg data-line="" scss="" viewbox="0...' ); /* 編碼圖標的Sass函數 */ @function svg($name) { @return url('data:image/svg xml, #{$encodedSVG} '); } /* 將每個圖標存儲到自定義屬性中 */ :root { @each $name, $code in $svg-icons { --svg-#{$name}: #{svg($name)}; } } /* 在我的按鈕中添加漢堡圖標 */ .menu::after { content: var(--svg-burger); } <p>此技術既有優點也有缺點,因此在項目中實施此解決方案之前,請務必考慮這些因素:</p> <h4 >優點</h4> <ul ><li>無需為SVG文件發出HTTP請求。 </li><li>所有圖標都存儲在一個位置。 </li><li>如果需要更新圖標,則無需遍歷每個HTML模板文件。 </li><li>圖標與CSS一起緩存。 </li><li>您可以手動編輯圖標的源代碼。 </li><li>它不會通過添加額外的標記來污染您的HTML。 </li><li>您仍然可以使用CSS更改圖標的顏色或某些方面。 </li></ul> <h4 >缺點</h4> <ul ><li>您無法使用CSS為SVG的特定部分添加動畫或更新。 </li><li>圖標越多,編譯後的CSS文件就越大。 </li></ul> <p>我主要將此技術用於圖標,而不是徽標或插圖。編碼後的SVG始終比其原始文件更大,因此我仍然使用<img src=" data-src="https://img.php.cn/upload/article/000/000/000/174157496146935.jpg?x-oss-process=image/resize,p_40" class="lazy" alt="How I Made an Icon System Out of CSS Custom Properties "></svg></code>
以上是我如何用CSS自定義屬性製作圖標系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!

在本週的綜述中:datepickers正在讓鍵盤用戶頭痛,一個新的Web組件編譯器,有助於與Fouc進行戰鬥,我們終於獲得了造型列表項目標記,以及在您的網站上獲得網絡攻擊的四個步驟。

在本週的Web平台新聞世界中,Google搜索控制台可以更輕鬆地查看爬行的標記,我們了解到自定義屬性


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

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

WebStorm Mac版
好用的JavaScript開發工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。