1. 程式人生 > >svg image標簽降級技術

svg image標簽降級技術

不能 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標簽降級技術