摘要:在中使用很簡(jiǎn)單,但是也有一些需要知道的事情。兼容的方法在里面使用如果想要通過(guò)控制,但是又想避免內(nèi)聯(lián)的弊端,可以在里面使用。記得去掉換行它可以在上述的所有場(chǎng)景里面使用,除了內(nèi)聯(lián)。
原文地址: https://css-tricks.com/using-...原文作者: Chris Coyier
翻譯作者: https://github.com/chenmf6
翻譯出處:https://github.com/lightningm...
SVG是一種向量圖的圖片格式,即可伸縮向量圖(Scalable Vector Graphics),可以在Adobe Illustrator里面生成。在Web中使用SVG很簡(jiǎn)單,但是也有一些需要知道的事情。
為什么用SVG壓縮后文件體積小
可以無(wú)損伸縮到任意尺寸(除非尺寸特別?。?/p>
在retina屏幕上可以完美顯示
設(shè)計(jì)可控,比如交互和濾鏡
怎么生成SVG可以在Adobe Illustrator里設(shè)計(jì)并且得到SVG。下面是一個(gè)站在橢圓上的奇異鳥(niǎo):
留意到畫(huà)板剛好貼著設(shè)計(jì)主體的邊緣,畫(huà)布的大小在SVG里面的重要性和在PNG和JPG里面是一樣的。
然后可以直接在Adobe Illustrator里面保存成SVG文件。
保存的時(shí)候,可以在duihua對(duì)話(huà)框里面選擇SVG選項(xiàng)。完整的參考可以看SVG 介紹。這里選SVG 1.1就可以了。
當(dāng)點(diǎn)擊"OK"或者"SVG Code..."的時(shí)候,就會(huì)打開(kāi)文本編輯器,顯示SVG的編碼。
然后就可以用特殊的SVG CSS來(lái)控制這些元素了。SVG元素由著特殊的CSS屬性,比如它沒(méi)有background-color,而是用fill,但是也可以使用一些其他的普通屬性,比如:hover
CSS .kiwi { fill: #94d31b; } .kiwi:hover { fill: #ace63c; }
更厲害的是,SVG可以使用濾鏡(filter),比如模糊濾鏡。比如在SVG代碼里面可以加上一個(gè)濾鏡:
SVG
然后可以在CSS里面使用這個(gè)濾鏡
CSS .ground:hover { filter: url(#pictureFilter); }
下面是一個(gè)完整的例子:
前往codepen查看
更多閱讀:
SVG濾鏡的更多應(yīng)用
SVG CSS屬性大全(針對(duì)Opera)
SVG濾鏡效果演示(由Microsoft提供)
瀏覽器支持內(nèi)聯(lián)SVG的瀏覽器支持看這里,基本和前面的一樣。兼容的方法:
HTML
CSS .fallback { display: none; /* Make sure it"s the same size as the SVG takes up */ } .no-svg .fallback { background-image: url(logo.png); }在里面使用SVG
如果想要通過(guò)CSS控制SVG,但是又想避免內(nèi)聯(lián)SVG的弊端,可以在里面使用SVG。
HTML
同樣可以使用Modernizr來(lái)兼容:
CSS .no-svg .logo { width: 200px; height: 164px; background-image: url(kiwi.png); }
這種情況下,如果想要用CSS控制SVG,就不能用外部的樣式或者文檔里面的了,要用SVG文件內(nèi)部的:
SVG在 SVG里使用外部樣式
可以在SVG文件開(kāi)頭的標(biāo)簽前面引入:
HTML
如果把這個(gè)放在HTML里面,頁(yè)面會(huì)崩潰沒(méi)法渲染,如果把這個(gè)放在或者background-image的SVG里面,頁(yè)面不會(huì)崩潰,但是也不起作用。
在Data URL里面使用SVG還可以把SVG轉(zhuǎn)換成Data URL,轉(zhuǎn)換之后可能不止原來(lái)的文件大小,但是它很方便,因?yàn)椴恍枰~外產(chǎn)生網(wǎng)絡(luò)請(qǐng)求。
Mobilefish.com上面有一個(gè)base64在線(xiàn)轉(zhuǎn)換器,可以轉(zhuǎn)成base64編碼,但是這種方式不太推薦。記得去掉換行:
它可以在上述的所有場(chǎng)景里面使用,除了內(nèi)聯(lián)SVG。
個(gè)人比較推薦這個(gè)在線(xiàn)轉(zhuǎn)換器,因?yàn)檗D(zhuǎn)換之后可讀性比較強(qiáng)。
用在里面
HTML
CSS里面
CSS .logo { background: url("data:image/svg+xml;base64,[data]"); }
里面
HTML
如果,SVG在base64編碼之前有嵌套的,那么它依然可以在里面起作用。
Data URI格式上面的例子都是base64編碼的,但是也不一定要轉(zhuǎn)換成base64編碼,實(shí)際上對(duì)于SVG最好不要轉(zhuǎn)成base64編碼。因?yàn)镾VG的原始格式文本重復(fù)性比較高,gzip壓縮效果更好。
HTML data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL... data:image/svg+xml;charset=UTF-8, data:image/svg+xml;charset=UTF-8,%3Csvg xmlns="http://..." data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A//...自動(dòng)化工具
grunticon
從CSS的角度來(lái)看比較易用,為每個(gè)icon生成一個(gè)class,不用CSS sprites。grunticon輸入一個(gè)SVG/PNG文件的目錄,然后輸出對(duì)應(yīng)的3種格式的CSS:SVG data url,png data url和一個(gè)引用普通的png圖片的兼容性CSS文件。
iconizr
一個(gè)PHP命令行工具,把SVG圖片轉(zhuǎn)換成CSS icon,支持圖片優(yōu)化和SASS輸出。相關(guān)參考
David Bushell: 一個(gè)前端SVG Hacking的更好方法
David Bushell: 使用不依賴(lài)于分辨率的SVG
MDN on SVG
SVG相關(guān)的瀏覽器支持
Peter Gasston: 使用Fragment Identifiers更好地實(shí)現(xiàn)SVG Sprites
simuari: SVG棧
SVG.js - "輕量的第三方庫(kù),可以操作SVG,還可以實(shí)現(xiàn)動(dòng)畫(huà)"
Emmet:一種直接從文本編輯器里面生成SVG data URI的方式
Compass Inline Data Helpers.
Adobe: 給SVG添加樣式
Andrew J. Baker: 馴服SVG
除了Illustrator的其他編輯工具: Inkscape, Sketch
Krister Kari: 在移動(dòng)端瀏覽器中使用SVG圖片
Kyle Foster: 更優(yōu)的SVG工作流
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/114836.html
摘要:在中使用很簡(jiǎn)單,但是也有一些需要知道的事情。兼容的方法在里面使用如果想要通過(guò)控制,但是又想避免內(nèi)聯(lián)的弊端,可以在里面使用。記得去掉換行它可以在上述的所有場(chǎng)景里面使用,除了內(nèi)聯(lián)。 原文地址: https://css-tricks.com/using-...原文作者: Chris Coyier 翻譯作者: https://github.com/chenmf6 翻譯出處:https://gi...
摘要:目前只提供了一些基礎(chǔ)功能。中與的區(qū)別開(kāi)發(fā)者第一次接觸手寫(xiě)那種,雖然很多情況都有設(shè)計(jì)師使用來(lái)完成這項(xiàng)工作,但還是不排除需要利用到的每個(gè)元素。輕量級(jí),具備靈活的來(lái)自團(tuán)隊(duì),全球非常出名的可視化團(tuán)隊(duì)。于是筆者嘗試著把移植到中。 使用SVG + CSS實(shí)現(xiàn)動(dòng)態(tài)霓虹燈文字效果 早上無(wú)意間進(jìn)入一個(gè)網(wǎng)站,看到他們的LOGO效果略屌,如圖: 剛開(kāi)始以為是gif動(dòng)畫(huà)之類(lèi)的,審查元素發(fā)現(xiàn)居然是用SVG + ...
摘要:它是基于,由聯(lián)盟進(jìn)行開(kāi)發(fā)的。是一種采用來(lái)描述二維圖形的語(yǔ)言這個(gè)大家都知道,那么元素是什么呢單純翻譯的話(huà),是符號(hào)的意思,然我的理解是元素用來(lái)定義一個(gè)圖形模板對(duì)象,它可以用一個(gè)元素實(shí)例化。 showImg(https://segmentfault.com/img/bVbhAl9?w=1278&h=722); 大家好,這里是@IT·平頭哥聯(lián)盟,我是首席填坑官——蘇南(South·Su),...
閱讀 3338·2023-04-26 00:07
閱讀 3947·2021-11-23 10:08
閱讀 2957·2021-11-22 09:34
閱讀 867·2021-09-22 15:27
閱讀 1758·2019-08-30 15:54
閱讀 3762·2019-08-30 14:07
閱讀 926·2019-08-30 11:12
閱讀 691·2019-08-29 18:44