svg image標簽降級技術
阿新 • • 發佈:2018-07-11
不能 src lex 在屏幕上 好的 mode ima androi pre
1、svg image標簽降級技術:
svg不能很好的在anroid2.3中得到支持,需要額外的補充,IE8-以及Android 2.3默認瀏覽器是不支持SVG的。
svg image標簽降級技術,這是一個名叫Alexey Ten首先提出來的,類似下面的代碼:
<svg width="96" height="96">
<image xlink:href="svg.svg" src="svg.png" width="96" height="96" />
</svg>
即所有瀏覽器,包括IE,會把image標簽渲染成img標簽,而SVG中的image作用是:Provides a way to display a graphics image on the screen,也就是提供在屏幕上顯示一個圖形圖像的方法。
於是,就有,如果瀏覽器支持SVG,則SVG顯示;對於不支持的瀏覽器,例如IE8瀏覽器,會忽略svg標簽的存在,直接渲染image,在其看來,這就是個img標簽,於是,圖像就以svg.png的形式顯示了。
2、使用SVG作為background-image
Modernizr有一個SVG測試,可以判定設備是否支持SVG,於是,我們就可以通過在HTML元素上添加特定的類名(eg. no-svg
),做不同的樣式控制。
.my-element {
background-image: url(image.svg);
}
.no-svg .my-element {
background -image: url(image.png);
}
這樣就不會出現雙下載的問題了。但是,Modernizr畢竟是個外部依賴,且貌似膘肥體鍵,真要實際應用,不合適的來~
下面有個更優的方法,利用CSS支持的偽hack,如下使用:
.my-element {
background-image: url(fallback.png);
background-image: url(image.svg), none;
}
其利用的技術是CSS3多背景,這是一個經驗式技術,我們通過各種觀察或者積累發現,瀏覽器只要支持了多背景,幾乎無一例外支持SVG。於是,瀏覽器認識url(image.svg), none
這個多背景聲明,就使用SVG,否則,降級使用上面的png
背景。
svg image標簽降級技術