打開瀏覽器調試工具,發現font-awesome user
這個小圖標,其css
樣式是.css
icon-user:before { content: "\f007"; } [class^="icon-"]:before, [class*=" icon-"]:before { text-decoration: inherit; display: inline-block; speak: none; }
根據css文件路徑,咱們打開font-awesome.css
發現它是引用了css3 @font-face
這個屬性。css3
@font-face { font-family: 'FontAwesome'; src: url('../font/fontawesome-webfont.eot?v=3.2.1'); src: url('../font/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('../font/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('../font/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg'); font-weight: normal; font-style: normal; }
咱們順着src:url()找到其圖標svgweb
其路徑爲url('../font/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');
咱們用sublime
打開路徑下的svg
圖,因爲SVG是 XML
格式,所以能夠支持一般用 XML 工具和庫進行的轉換和生成。具體的教程連接:XML 問題: 使用 SVG 編程編程
<glyph unicode="" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
發現content:'\f007'
對應的就是上文的unicode=「oo7」
。windows
寫到這裏你們也許有點清晰了font-awesome
裏的圖標是怎麼來的,不過仍是有點稀裏糊塗的,必定有不少問題會問:瀏覽器
svg圖是什麼? 怎麼生成的?sass
把全部的圖標都作成一張svg圖片意義何在
?它和css sprite
有什麼區別呢?svg
哈哈,其實我和你們也同樣,很好奇,因而查看了不少文檔。原來早已經有大神研究過了。我會一一放上連接的,這裏我先談一下個人幾點認識wordpress
css sprite
又叫css精靈或css雪碧圖,是一種背景圖片的拼合技術。使用css雪碧圖,可以減小頁面的請求數、這個很關鍵,由於每個http請求
都是長鏈接,咱們都知道http開銷是很大的,像一些購物網站,若是那麼多圖標都是標籤引入的,那後果不堪設想。css-sprite的設計就是提高頁面訪問速度和網站請求資源開銷的。工具
css-sprite經過background-position
這個css3
新增屬性來實現.咱們能夠一次性引入圖片文件,經過設置background-size
來切割小圖標,而後經過css-position
來給具體的小圖標icon
定位
1.慕課網上有
遠人
老師的視頻,教你如何作一個css-sprite。傳送門:CSS Sprite雪碧圖應用
2.windows開發者能夠直接百度css-sprite製做工具,工具不少。
3.用sass編譯的同窗能夠直接使用compass
自動合併css雪碧圖,教程連接地址
4.能夠用ps
和AI
人工拼圖
css-sprite缺點:拼圖和後期維護的成本比較大。
咱們能夠經過
這裏由於我瞭解的不是不少,並且我本人也是根據張鑫旭
大神的技術博客學習的,因此直接貼地址:
<svg> <defs> <g id="shape"> <rect x="0" y="0" width="50" height="50" /> <circle cx="0" cy="0" r="50" /> </g> </defs> <use xlink:href="#shape" x="50" y="50" /> <use xlink:href="#shape" x="200" y="50" /> </svg>
總結:
symbol
+ use
=> SVG Sprite
。並且在HTML層面,圖標使用的代碼成本,跟傳統的CSS Sprite
或者流行的font-face
幾乎無異,代碼簡潔,並且很好維護。全部的SVG圖標都在一個SVG源上。retina良好,尺寸可任意拉伸,且顏色可控,真乃Web圖標的將來之星。