HTML5/CSS3系列教程:使用SVG圖片

2020-12-17 站長之家

在我們開始使用SVG前,讓我們先了解一下 SVG,並且解釋一下為什麼使用SVG。

SVG全稱是Scalable Vector Graphics,如果你使用過adobe Illustrator的話,相信你對這種適量格式的圖片並不陌生!

為什麼使用SVG?

  • 文件非常小
  • 能夠無損失的縮放尺寸
  • 在Retina顯示屏上效果超棒
  • 能夠控制圖片樣式設計,例如互動和過濾filter

瀏覽器支持

  • IE8及其更低版本不支持
  • Android 2.3及其更低版本不支持
  • 其它瀏覽器都支持

如果你需要支持這些版本的瀏覽器的話,你可以使用Modernizr,如下:

if (!Modernizr.svg) {

$(「.gblogo img」).attr(「src」, 「images/logo.png」);

}

或者使用如下更簡單的代碼:

<img src=「gblogo.svg」 onerror=「this.onerror=null; this.src=」gblogo.png「」>

SVG文件作為一般圖片使用

你可以作為圖片來直接使用,如下:

<img src=「logo.svg」 alt=「gbtags logo」>

你可以像控制JPG或者PNG格式文件一樣,控制圖片的大小,如下:

在線調試:https://www.gbtags.com/gb/debug/77d50934-592b-4b8a-b591-e7068c7e38ef.htm

SVG文件作為背景圖片使用

我們也可以使用SVG圖片作為背景圖片使用,如下:

<a href=「https://www.gbtags.com」 class=「logo」>

gbtags.com

</a>

CSS:

.logo {

display: block;

text-indent: -9999px;

width: 100px;

height: 100px;

background: url(gblogo.svg);

background-size: 100px 82px;

}

使用行內SVG

你可以直接將SVG代碼拷貝到body中,將會看到圖片,如下:

<body>

<!-- 將SVG代碼拷貝到此處,將會顯示圖片 -->

</body>

使用CSS控制SVG

你可以使用CSS來控制SVG文件,下面代碼將控制滑鼠懸浮時的圖片背景顏色:

<g class=「logo」 transform=「translate(0.000000,500.000000) scale(0.100000,-0.100000)」

fill=「#000000」 stroke=「none」>

以上代碼定義了一個logo的class,然後我們可以在CSS定義如下:

.logo:hover{

fill: #F08000;

....

}

注意SVG中我們使用fill而不是background來定義背景色。

甚至可以使用filter來控制模糊度,如下:

.logo:hover{

fill: #F08000;

filter: url(#logoFilter);

}

當你使用滑鼠hover圖片時,會有如下效果。

在線調試:https://www.gbtags.com/gb/debug/acfcf33e-db11-4b71-bdcb-d38e99fdcef3.htm

SVG相關工具

在線轉SVG工具:https://image.online-convert.com/convert-to-svg

微軟的SVG filter效果展示工具:https://ie.microsoft.com/testdrive/graphics/hands-on-css3/hands-on_svg-filter-effects.htm

SVG減肥工具:https://www.mobilefish.com/services/base64/base64.php

總結

SVG是一個非常強大的圖片格式,可以幫助你高效的處理圖片,擁有比JPG或者PNG更靈活強大的圖形展示方式,相信如果加以時日,必定成為最流行的圖片處理方式!

via 極客標籤

相關焦點

  • DIV CSS3和html5 CSS3有什麼區別
    首先,不管是DIV+CSS3還是html5+CSS3,他們都是我們對網頁開發布局方式的統稱,但是DIV+CSS3作為網頁的基礎開發這句話其實並不嚴謹,因為而div只是HTML的一個比較重要的元素而已,而標準的叫法應是HTML+CSS,我們要比較的其實是html+css3和html5
  • 線條之美,玩轉SVG線條動畫
    以上這些效果都是利用SVG線條動畫實現的,只用了css3和svg,沒有使用一行javascript代碼,這一點和canvas比起來要容易一些,下面就說明一下實現這些效果的原理。因此,5,3,2等同於5,3,2,5,3,2;stroke-dashoffset:標識的是整個路徑的偏移值;以一張圖來解釋stroke-dasharray和stroke-dashoffset更容易理解一些:
  • HTML5/CSS3系列教程:HTML5 區域(Sectioning)的重要性
    但真正的問題在於我們並沒有使用任何正確的工具來實現。一般情況下我們使用典型的網格來劃分頁頭,頁面主題,頁尾等等區域來實現所謂的頁面布局。相關閱讀:HTML5/CSS3系列教程:HTML5基本標籤使用header,nav和footer開發網站可能大家還記得使用dreamweaver來開發網站的日子,我們通過拖拽來生成一個典型的頁面,如下:使用dreamweaver只是為了快速的生成圖形界面而非真正意義上的信息語義清晰,當然很多人都使用
  • 網頁截圖和svg模版動態生成圖片Java實現
    用流程圖簡單說明下我這邊工作中使用的場景僅供參考所以這裡就需要生成證書了我先給大家看下最終實現的圖片效果但也介紹下這種使用方式 朋友們根據自己的實際需求情況有選擇的使用通過html代碼實現圖片的效果 放入web容器(比如nginx)中部署這是h5代碼
  • SVG - 動畫製作
    SVG 動畫基本命令<set> 表示瞬間的動畫設置<animate> 用於實現單屬性的動畫效果<animateColor> 顏色發生動畫效果(也能夠使用animate進行操作,因此,可忽略)<animateTransform
  • 如何在HTML中添加背景圖片?
    在HTML中,我們可以使用兩種不同的方法在HTML網頁上顯示背景圖片:使用背景屬性(HTML標籤)
  • HTML5摘要:要繪製和移動的canvas元素,svg元素
    一個canvas元素,允許您在不使用圖像的情況下繪製圖片·移動它以前,當您想要顯示圖形和圖片時,只有一種方法可以創建圖像文件並使用img元素顯示它。此外,如果您想要複雜的動畫,您必須使用特殊軟體創建Flash等。
  • Bootstrap 開源 SVG 圖標庫 Bootstrap Icons - OSCHINA - 中文...
    雖然它們是為 Bootstrap 設計的,但可以在任何項目中使用。不過要注意的是,它們現在尚處於 alpha 階段,未來可能會出現重大變化。width="32" height="32" viewBox="0 0 20 20" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M6.646 3.646a.5.5 0 01.708 0l6 6a.5.5 0 010 .708l-6 6a.5.5 0 01-.708
  • SVG之旅:SVG線條動畫實現原理
    我個人比較喜歡使用Sketch軟體。如比我們可以在Sketch上製作一個類似於上圖的路徑圖:這個圖形必須要一個stroke屬性上面的圖導出來的path.svg使用編輯器打開,然後清理一下無用的代碼,看到的就像下面這樣
  • 29個非常實用的HTML 5實例、教程和技巧
    在該教程中,我們將領略通過使用HTML 5結構來編寫酷酷的iPhone應用網站會怎樣,並運用一些CSS3效果來添加可視化樣式。20. HTML 5和CSS 3:你很快就會使用的技巧在這個教程中,我們將使用來自HTML 5和CSS 3的下一代技巧,構建一個博客網頁。該教程旨在演示等規範完成後、瀏覽器開發商實施這些規範後,我們將如何構建網站。如果你已經知道HTML和CSS,應該很容易按步驟行事。
  • 新手建網站系列教程5 WordPress後臺發文章技巧
    這篇文章是新手建網站系列教程的第五篇,給大家介紹如何在WordPress後臺發表文章和發文章時候的一些小技巧。新手建網站系列教程4 WordPress網站後臺設置詳解新建文章位置默認的WordPress 5.0以上的版本都採用了新的編輯器,叫做Gutenberg編輯器,奶爸個人覺得不好用,建議使用老版本的編輯器。
  • 前端工程師必備的css3動畫技巧
    本文轉載自【微信公眾號:趣談前端,ID:beautifulFront】經微信公眾號授權轉載,如需轉載與原文作者聯繫本文是筆者之前文章用css3實現驚豔面試官的背景即背景動畫(高級附源碼)的續篇也是介紹css3技巧的文章,因為css這塊知識難點不是很多,更多的在於去熟悉css3的新特性和基礎理論知識。
  • 前端入門教程網頁導航欄製作教程(技術:HTML+CSS)
    整個布局用到的是flex布局:大家可以去看一下阮一峰老師的教程:阮一峰flex布局左側logo部分我們用到的標籤有:1、h3標籤:<h3><a href="index.html">多多魚網頁</a></h3>h3是一對有開始有閉合的標籤組合。
  • HTML文檔JS解析庫介紹
    通過使用DOMParser,可以輕鬆解析HTML文檔。但是,一般需要通過欺騙瀏覽器來實現解析,比如,通過向當前文檔添加新元素。DOCTYPE html><p>Hello, Chongchong!
  • 手摸手,帶你優雅的使用 icon
    漸漸發現一個頁面的請求資源中圖片 img 佔了大部分,所以為了優化有了 image sprite 就是所謂的雪碧圖,就是將多個圖片合成一個圖片,然後利用 css 的 background-position 定位顯示不同的 icon 圖標。但這個也有一個很大的痛點,維護困難。
  • 9款令人驚嘆的HTML5 3D動畫應用
    4、HTML5 3D圖片切片滑塊旋轉動畫 超酷的HTML5 3D特效先來說說怎麼玩這款HTML5 3D圖片動畫特效,我們只需要在圖片上面拖動滑鼠,圖片即會在垂直方向分裂出數塊小長方體,然後每一個小長方體沿著滑鼠拖動的方向旋轉。這款HTML5 3D動畫非常酷,它的實現離不開js動畫框架TweenMax。
  • 手摸手,帶你優雅地使用 icon
    漸漸發現一個頁面的請求資源中圖片 img 佔了大部分,所以為了優化有了image sprite 就是所謂的雪碧圖,就是將多個圖片合成一個圖片,然後利用 css 的 background-position 定位顯示不同的 icon 圖標。但這個也有一個很大的痛點,維護困難。
  • 公眾號SVG排版圖文「精準定位視頻插入位置」模板代碼
    ="0 0 1080 160" data-copyright="懂點君"></svg></p><!important;"><iframe frameborder="0" src="https://v.qq.com/txp/iframe/player.html?vid=p09791f2590" allowFullScreen="true"></iframe></section><!