>通常由於渲染不一致,可訪問性問題和語義限製而使用圖標字體通常不建議使用。 本文概述了用於創建和實現可訪問的SVG圖標的簡化工作流程,利用SVG Sprites的功能。
雖然SVG看起來很複雜,但這種方法簡化了過程。我們將利用隨時可用的圖標,並自動化Sprite生成來進行高效的管理。 鍵優點:避免了圖標字體的陷阱。
- >用自動精靈生成簡化了SVG管理。 提供了易於重複使用的圖標組件。
- 通過使用
- >和 標籤來確定可訪問性。
- >
<title></title>
<desc></desc>
工作流程概述:
源圖標:
- 獲取svg圖標(例如,來自icomoon)。 清理SVG文件,刪除不必要的元數據以最大程度地減少Sprite的尺寸。
- Sprite生成:
- >使用之類的工具(可通過npm:安裝)從您的單個圖標文件中生成SVG Sprite。 這將所有圖標整合到一個文件中以進行有效的加載。 示例命令:
spritesh
npm install spritesh -g
spritesh --input assets/images/icons --output _includes/sprite.svg --viewbox "0 0 16 16" --prefix icon-
> > sprite包含: - >在您的主佈局中包括生成的精靈(例如,在jekyll中使用)。 >
{% include sprite.svg %}
> 圖標組件: - 和可訪問性屬性。
可訪問性:
<use></use>
圖標組件應包括viewBox
和 標籤,以為屏幕讀取器提供上下文,從而增強可訪問性。 這些描述應針對特定於上下文,並根據圖標的用法動態添加。 - >
<title></title>
<desc></desc>
>
>
示例圖標組件(react):
{% capture id %}{% increment uniqueid %}{% endcapture %} <svg viewBox="0 0 16 16" role="img" class="icon icon-{{ include.icon }}" aria-labelledby="{% if include.title %}title-{{ id }}{% endif %}{% if include.desc %} desc-{{ id }}{% endif %}"> {% if include.title %} <title id="title-{{ id }}">{{ include.title }}</title> {% endif %} {% if include.desc %} <desc id="desc-{{ id }}">{{ include.desc }}</desc> {% endif %} <use xlink:href="#icon-{{ include.icon }}"></use> </svg>優化:
集成像svgo()這樣的工具,以優化SVG文件,以提高性能,以提高性能。 使用NPM腳本來自動化此過程。 >
>此工作流提供了一個可靠,可維護且可訪問的解決方案,用於管理項目中的SVG圖標。請記住,請始終在不同的瀏覽器和屏幕讀取器上測試您的圖標,以確保最佳可訪問性。import { uniqueId } from 'lodash'; const Icon = (props) => { const id = uniqueId(); return ( <svg role="img" viewBox="0 0 16 16" className={`icon icon-${props.icon}`} aria-labelledby={ (props.title ? `title-${id}` : '') + (props.desc ? ` desc-${id}` : '') }> {props.title && <title id={`title-${id}`}>{props.title}</title>} {props.desc && <desc id={`desc-${id}`}>{props.desc}</desc>} <use xlinkHref={`#icon-${props.icon}`} /> </svg> ); }; export default Icon;>
以上是可訪問圖標的工作SVG工作流程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

文章討論了CSS FlexBox,這是一種佈局方法,用於有效地對齊和分佈響應設計中的空間。它說明了FlexBox用法,將其與CSS網格進行了比較,並詳細瀏覽了瀏覽器支持。

本文討論了使用CSS創建響應網站的技術,包括視口元標籤,靈活的網格,流體媒體,媒體查詢和相對單元。它還涵蓋了使用CSS網格和Flexbox一起使用,並推薦CSS框架

本文討論了CSS盒裝屬性,該屬性控制了元素維度的計算方式。它解釋了諸如Content-Box,Border-Box和Padding-Box之類的值,以及它們對佈局設計和形式對齊的影響。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

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

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

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Linux新版
SublimeText3 Linux最新版