什麼是SVG?也許現在很多人都聽過SVG的人比較多,但不一定了解什麼是SVG:SVG(Scalable Vector Graphics 一大串看不懂的英文)可伸縮向量圖形,它是用XML格式來定義用於網路的基於向量的圖形,而它的特點是 圖像在放大或改變尺寸的情況下其圖形品質不會有所損失,同時他和DOM一樣都是W3C的一個標準。
這裡解釋下位圖和向量圖:
位圖,也就是我們經常能看到的圖片,他是一個平面上密集排布的店的集合,也就是說它是由一個個點構成的。而如果對他進行放大那麼相對應的點就會進行放大,這樣就會讓圖片顯得十分不清晰粗糙。
向量圖,也稱為物件導向的圖像或繪圖圖像,在數學上定義為一系列由線連接的點。向量檔案中的圖形元素稱為物件。每個物件都是一個自成一體的實體,它具有顏色、形狀、輪廓、大小和螢幕位置等屬性。它的特點是放大後影像不會失真,和解析度無關,適用於圖形設計、文字設計和一些標誌設計、版式設計等。向量圖格式有CGM, SVG, AI (Adobe Illustrator), CDR (CorelDRAW), PDF, SWF, VML等。
(ps:本隨筆下面的內容部分來自W3Cschool)
一個簡單的SVG
<span style="color: #0000ff;"></span><span style="color: #ff00ff;">xml version="1.0" standalone="no"</span><span style="color: #0000ff;">?></span> <span style="color: #0000ff;"><span style="color: #ff00ff;">DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">circle </span><span style="color: #ff0000;">cx</span><span style="color: #0000ff;">="100"</span><span style="color: #ff0000;"> cy</span><span style="color: #0000ff;">="50"</span><span style="color: #ff0000;"> r</span><span style="color: #0000ff;">="40"</span><span style="color: #ff0000;"> stroke</span><span style="color: #0000ff;">="black"</span><span style="color: #ff0000;"> stroke-width</span><span style="color: #0000ff;">="2"</span><span style="color: #ff0000;"> fill</span><span style="color: #0000ff;">="red"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span></span>
SVG 程式碼解析:
第一行包含了 XML 宣告。請注意 standalone 屬性!此屬性規定此 SVG 檔案是否為"獨立的",或含有外部檔案的參考。 standalone="no" 表示 SVG 文件會引用一個外部檔案 - 在這裡,是 DTD 檔案。
第二和第三行引用了這個外部的 SVG DTD。該 DTD 位於 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"。該 DTD 位於 W3C,含有所有允許的 SVG 元素。
SVG 程式碼以
SVG 的
stroke 和 stroke-width 屬性控制如何顯示形狀的輪廓。我們把圓的輪廓設定為 2px 寬,黑邊框。 fill 屬性設定形狀內的顏色。我們把填滿顏色設定為紅色。
關閉標籤的作用是關閉 SVG 元素和文件本身。
註解:所有的開啟標籤必須有關閉標籤!
SVG的優勢
- SVG 可被非常多的工具讀取和修改(記事本也可以輕鬆打開修改)
- SVG 與 JPEG 和 GIF 影像比起來,尺寸更小,且可壓縮性更強。
- SVG 是可伸縮的
- SVG 影像可在任何的解析度下被高品質地列印
- SVG 可在影像品質不下降的情況下放大
- SVG 圖像中的文字是可選的,同時也是可搜尋的(很適合製作地圖)
- SVG 可以與 Java 等技術一起運行
- SVG 是開放的標準
- SVG 檔案是純粹的 XML
SVG 檔案可透過以下標籤嵌入 HTML 文件:
SVG的程式碼可以直接嵌入到HTML頁面中,或者您可以直接連結到SVG檔案。
矩形
<span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">width</span><span style="color: #0000ff;">="100%"</span><span style="color: #ff0000;"> height</span><span style="color: #0000ff;">="100%"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #ff0000;"> xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">rect </span><span style="color: #ff0000;">x</span><span style="color: #0000ff;">="20"</span><span style="color: #ff0000;"> y</span><span style="color: #0000ff;">="20"</span><span style="color: #ff0000;"> rx</span><span style="color: #0000ff;">="20"</span><span style="color: #ff0000;"> ry</span><span style="color: #0000ff;">="20"</span><span style="color: #ff0000;"> width</span><span style="color: #0000ff;">="250"</span><span style="color: #ff0000;"> height</span><span style="color: #0000ff;">="100"</span><span style="color: #ff0000;"> style</span><span style="color: #0000ff;">="fill:red;stroke:black; stroke-width:5;opacity:0.5"</span><span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span>
-
rect 元素的 width 和 height 属性可定义矩形的高度和宽度
-
style 属性用来定义 CSS 属性
-
CSS 的 fill 属性定义矩形的填充颜色(rgb 值、颜色名或者十六进制值)
-
CSS 的 stroke-width 属性定义矩形边框的宽度
-
CSS 的 stroke 属性定义矩形边框的颜色
-
x 属性定义矩形的左侧位置(例如,x="0" 定义矩形到浏览器窗口左侧的距离是 0px)
-
y 属性定义矩形的顶端位置(例如,y="0" 定义矩形到浏览器窗口顶端的距离是 0px)
-
CSS 的 fill-opacity 属性定义填充颜色透明度(合法的范围是:0 - 1)
-
CSS 的 stroke-opacity 属性定义笔触颜色的透明度(合法的范围是:0 - 1)
-
CSS opacity 属性用于定义了元素的透明值 (范围: 0 到 1)。
-
rx 和 ry 属性可使矩形产生圆角。
圆形
<span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">circle </span><span style="color: #ff0000;">cx</span><span style="color: #0000ff;">="100"</span><span style="color: #ff0000;"> cy</span><span style="color: #0000ff;">="50"</span><span style="color: #ff0000;"> r</span><span style="color: #0000ff;">="40"</span><span style="color: #ff0000;"> stroke</span><span style="color: #0000ff;">="black"</span><span style="color: #ff0000;"> stroke-width</span><span style="color: #0000ff;">="2"</span><span style="color: #ff0000;"> fill</span><span style="color: #0000ff;">="red"</span><span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span>
-
cx和cy属性定义圆点的x和y坐标。如果省略cx和cy,圆的中心会被设置为(0, 0)
-
r属性定义圆的半径
椭圆
<span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">ellipse </span><span style="color: #ff0000;">cx</span><span style="color: #0000ff;">="240"</span><span style="color: #ff0000;"> cy</span><span style="color: #0000ff;">="100"</span><span style="color: #ff0000;"> rx</span><span style="color: #0000ff;">="220"</span><span style="color: #ff0000;"> ry</span><span style="color: #0000ff;">="30"</span><span style="color: #ff0000;"> style</span><span style="color: #0000ff;">="fill:purple"</span><span style="color: #0000ff;">/></span> <span style="color: #0000ff;"><span style="color: #800000;">ellipse </span><span style="color: #ff0000;">cx</span><span style="color: #0000ff;">="220"</span><span style="color: #ff0000;"> cy</span><span style="color: #0000ff;">="70"</span><span style="color: #ff0000;"> rx</span><span style="color: #0000ff;">="190"</span><span style="color: #ff0000;"> ry</span><span style="color: #0000ff;">="20"</span><span style="color: #ff0000;"> style</span><span style="color: #0000ff;">="fill:lime"</span><span style="color: #0000ff;">/></span> <span style="color: #0000ff;"><span style="color: #800000;">ellipse </span><span style="color: #ff0000;">cx</span><span style="color: #0000ff;">="210"</span><span style="color: #ff0000;"> cy</span><span style="color: #0000ff;">="45"</span><span style="color: #ff0000;"> rx</span><span style="color: #0000ff;">="170"</span><span style="color: #ff0000;"> ry</span><span style="color: #0000ff;">="15"</span><span style="color: #ff0000;"> style</span><span style="color: #0000ff;">="fill:yellow"</span><span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span></span></span>
-
CX属性定义的椭圆中心的x坐标
-
CY属性定义的椭圆中心的y坐标
-
RX属性定义的水平半径
-
RY属性定义的垂直半径
线
<span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">line </span><span style="color: #ff0000;">x1</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;"> y1</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;"> x2</span><span style="color: #0000ff;">="200"</span><span style="color: #ff0000;"> y2</span><span style="color: #0000ff;">="200"</span><span style="color: #ff0000;"> style</span><span style="color: #0000ff;">="stroke:rgb(255,0,0);stroke-width:2"</span><span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span>
-
x1 属性在 x 轴定义线条的开始
-
y1 属性在 y 轴定义线条的开始
-
x2 属性在 x 轴定义线条的结束
-
y2 属性在 y 轴定义线条的结束
多边形
<span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">polygon </span><span style="color: #ff0000;">points</span><span style="color: #0000ff;">="200,10 250,190 160,210"</span><span style="color: #ff0000;"> style</span><span style="color: #0000ff;">="fill:lime;stroke:purple;stroke-width:1"</span><span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span>
- points 属性定义多边形每个角的 x 和 y 坐标
折线 (用于创建任何只有直线的形状)
<span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">polyline </span><span style="color: #ff0000;">points</span><span style="color: #0000ff;">="20,20 40,25 60,40 80,120 120,140 200,180"</span><span style="color: #ff0000;"> style</span><span style="color: #0000ff;">="fill:none;stroke:black;stroke-width:3"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span>
路径
<span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">path </span><span style="color: #ff0000;">d</span><span style="color: #0000ff;">="M150 0 L75 200 L225 200 Z"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span>
下面的命令可用于路径数据:
- M = moveto
- L = lineto
- H = horizontal lineto
- V = vertical lineto
- C = curveto
- S = smooth curveto
- Q = quadratic Bézier curve
- T = smooth quadratic Bézier curveto
- A = elliptical Arc
- Z = closepath
注意:以上所有命令均允许小写字母。大写表示绝对定位,小写表示相对定位。
文本
<span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">text </span><span style="color: #ff0000;">x</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;"> y</span><span style="color: #0000ff;">="15"</span><span style="color: #ff0000;"> fill</span><span style="color: #0000ff;">="red"</span><span style="color: #ff0000;"> transform</span><span style="color: #0000ff;">="rotate(30 20,40)"</span><span style="color: #0000ff;">></span>I love SVG<span style="color: #0000ff;"></span><span style="color: #800000;">text</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span>
SVG 滤镜
SVG可用的滤镜是:
- feBlend - 与图像相结合的滤镜
- feColorMatrix - 用于彩色滤光片转换
- feComponentTransfer
- feComposite
- feConvolveMatrix
- feDiffuseLighting
- feDisplacementMap
- feFlood
- feGaussianBlur
- feImage
- feMerge
- feMorphology
- feOffset - 过滤阴影
- feSpecularLighting
- feTile
- feTurbulence
- feDistantLight - 用于照明过滤
- fePointLight - 用于照明过滤
- feSpotLight - 用于照明过滤
除此之外,您可以在每个 SVG 元素上使用多个滤镜!
和
所有互联网的SVG滤镜定义在
<span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">filter </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="f1"</span><span style="color: #ff0000;"> x</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;"> y</span><span style="color: #0000ff;">="0"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">feGaussianBlur </span><span style="color: #ff0000;">in</span><span style="color: #0000ff;">="SourceGraphic"</span><span style="color: #ff0000;"> stdDeviation</span><span style="color: #0000ff;">="15"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">filter</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">rect </span><span style="color: #ff0000;">width</span><span style="color: #0000ff;">="90"</span><span style="color: #ff0000;"> height</span><span style="color: #0000ff;">="90"</span><span style="color: #ff0000;"> stroke</span><span style="color: #0000ff;">="green"</span><span style="color: #ff0000;"> stroke-width</span><span style="color: #0000ff;">="3"</span><span style="color: #ff0000;"> fill</span><span style="color: #0000ff;">="yellow"</span><span style="color: #ff0000;"> filter</span><span style="color: #0000ff;">="url(#f1)"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span></span></span></span>
-
元素id属性定义一个滤镜的唯一名称 -
元素定义模糊效果 -
in="SourceGraphic"这个部分定义了由整个图像创建效果
-
stdDeviation属性定义模糊量
-
元素的滤镜属性用来把元素链接到"f1"滤镜
SVG
第一个例子偏移一个矩形(带
<span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">filter </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="f1"</span><span style="color: #ff0000;"> x</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;"> y</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;"> width</span><span style="color: #0000ff;">="200%"</span><span style="color: #ff0000;"> height</span><span style="color: #0000ff;">="200%"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">feOffset </span><span style="color: #ff0000;">result</span><span style="color: #0000ff;">="offOut"</span><span style="color: #ff0000;"> in</span><span style="color: #0000ff;">="SourceGraphic"</span><span style="color: #ff0000;"> dx</span><span style="color: #0000ff;">="20"</span><span style="color: #ff0000;"> dy</span><span style="color: #0000ff;">="20"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"><span style="color: #800000;">feBlend </span><span style="color: #ff0000;">in</span><span style="color: #0000ff;">="SourceGraphic"</span><span style="color: #ff0000;"> in2</span><span style="color: #0000ff;">="offOut"</span><span style="color: #ff0000;"> mode</span><span style="color: #0000ff;">="normal"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">filter</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">rect </span><span style="color: #ff0000;">width</span><span style="color: #0000ff;">="90"</span><span style="color: #ff0000;"> height</span><span style="color: #0000ff;">="90"</span><span style="color: #ff0000;"> stroke</span><span style="color: #0000ff;">="green"</span><span style="color: #ff0000;"> stroke-width</span><span style="color: #0000ff;">="3"</span><span style="color: #ff0000;"> fill</span><span style="color: #0000ff;">="yellow"</span><span style="color: #ff0000;"> filter</span><span style="color: #0000ff;">="url(#f1)"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span></span></span></span></span>
元素id属性定义一个滤镜的唯一名称 元素的滤镜属性用来把元素链接到"f1"滤镜
<span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">filter </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="f1"</span><span style="color: #ff0000;"> x</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;"> y</span><span style="color: #0000ff;">="0"</span><span style="color: #ff0000;"> width</span><span style="color: #0000ff;">="200%"</span><span style="color: #ff0000;"> height</span><span style="color: #0000ff;">="200%"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">feOffset </span><span style="color: #ff0000;">result</span><span style="color: #0000ff;">="offOut"</span><span style="color: #ff0000;"> in</span><span style="color: #0000ff;">="SourceGraphic"</span><span style="color: #ff0000;"> dx</span><span style="color: #0000ff;">="20"</span><span style="color: #ff0000;"> dy</span><span style="color: #0000ff;">="20"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"><span style="color: #800000;">feGaussianBlur </span><span style="color: #ff0000;">result</span><span style="color: #0000ff;">="blurOut"</span><span style="color: #ff0000;"> in</span><span style="color: #0000ff;">="offOut"</span><span style="color: #ff0000;"> stdDeviation</span><span style="color: #0000ff;">="10"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"><span style="color: #800000;">feBlend </span><span style="color: #ff0000;">in</span><span style="color: #0000ff;">="SourceGraphic"</span><span style="color: #ff0000;"> in2</span><span style="color: #0000ff;">="blurOut"</span><span style="color: #ff0000;"> mode</span><span style="color: #0000ff;">="normal"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">filter</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">rect </span><span style="color: #ff0000;">width</span><span style="color: #0000ff;">="90"</span><span style="color: #ff0000;"> height</span><span style="color: #0000ff;">="90"</span><span style="color: #ff0000;"> stroke</span><span style="color: #0000ff;">="green"</span><span style="color: #ff0000;"> stroke-width</span><span style="color: #0000ff;">="3"</span><span style="color: #ff0000;"> fill</span><span style="color: #0000ff;">="yellow"</span><span style="color: #ff0000;"> filter</span><span style="color: #0000ff;">="url(#f1)"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span></span></span></span></span></span>
元素的stdDeviation属性定义了模糊量
SVG 渐变
渐变是一种从一种颜色到另一种颜色的平滑过渡。另外,可以把多个颜色的过渡应用到同一个元素上。
SVG渐变主要有两种类型:
-
Linear
-
Radial
SVG 线性渐变 -
线性渐变可以定义为水平,垂直或角渐变:
-
当y1和y2相等,而x1和x2不同时,可创建水平渐变
-
当x1和x2相等,而y1和y2不同时,可创建垂直渐变
-
当x1和x2不同,且y1和y2不同时,可创建角形渐变
<span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">linearGradient </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="grad1"</span><span style="color: #ff0000;"> x1</span><span style="color: #0000ff;">="0%"</span><span style="color: #ff0000;"> y1</span><span style="color: #0000ff;">="0%"</span><span style="color: #ff0000;"> x2</span><span style="color: #0000ff;">="100%"</span><span style="color: #ff0000;"> y2</span><span style="color: #0000ff;">="0%"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">stop </span><span style="color: #ff0000;">offset</span><span style="color: #0000ff;">="0%"</span><span style="color: #ff0000;"> style</span><span style="color: #0000ff;">="stop-color:rgb(255,255,0);stop-opacity:1"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"><span style="color: #800000;">stop </span><span style="color: #ff0000;">offset</span><span style="color: #0000ff;">="100%"</span><span style="color: #ff0000;"> style</span><span style="color: #0000ff;">="stop-color:rgb(255,0,0);stop-opacity:1"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">linearGradient</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">ellipse </span><span style="color: #ff0000;">cx</span><span style="color: #0000ff;">="200"</span><span style="color: #ff0000;"> cy</span><span style="color: #0000ff;">="70"</span><span style="color: #ff0000;"> rx</span><span style="color: #0000ff;">="85"</span><span style="color: #ff0000;"> ry</span><span style="color: #0000ff;">="55"</span><span style="color: #ff0000;"> fill</span><span style="color: #0000ff;">="url(#grad1)"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span></span></span></span></span>
-
标签的id属性可为渐变定义一个唯一的名称 -
标签的X1,X2,Y1,Y2属性定义渐变开始和结束位置 -
渐变的颜色范围可由两种或多种颜色组成。每种颜色通过一个
标签来规定。offset属性用来定义渐变的开始和结束位置。 -
填充属性把 ellipse 元素链接到此渐变
SVG 放射性渐变 -
<span style="color: #0000ff;"><span style="color: #800000;">svg </span><span style="color: #ff0000;">xmlns</span><span style="color: #0000ff;">="http://www.w3.org/2000/svg"</span><span style="color: #ff0000;"> version</span><span style="color: #0000ff;">="1.1"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">radialGradient </span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="grad1"</span><span style="color: #ff0000;"> cx</span><span style="color: #0000ff;">="50%"</span><span style="color: #ff0000;"> cy</span><span style="color: #0000ff;">="50%"</span><span style="color: #ff0000;"> r</span><span style="color: #0000ff;">="50%"</span><span style="color: #ff0000;"> fx</span><span style="color: #0000ff;">="50%"</span><span style="color: #ff0000;"> fy</span><span style="color: #0000ff;">="50%"</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">stop </span><span style="color: #ff0000;">offset</span><span style="color: #0000ff;">="0%"</span><span style="color: #ff0000;"> style</span><span style="color: #0000ff;">="stop-color:rgb(255,255,255); stop-opacity:0"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"><span style="color: #800000;">stop </span><span style="color: #ff0000;">offset</span><span style="color: #0000ff;">="100%"</span><span style="color: #ff0000;"> style</span><span style="color: #0000ff;">="stop-color:rgb(0,0,255);stop-opacity:1"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">radialGradient</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"></span><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span> <span style="color: #0000ff;"><span style="color: #800000;">ellipse </span><span style="color: #ff0000;">cx</span><span style="color: #0000ff;">="200"</span><span style="color: #ff0000;"> cy</span><span style="color: #0000ff;">="70"</span><span style="color: #ff0000;"> rx</span><span style="color: #0000ff;">="85"</span><span style="color: #ff0000;"> ry</span><span style="color: #0000ff;">="55"</span><span style="color: #ff0000;"> fill</span><span style="color: #0000ff;">="url(#grad1)"</span> <span style="color: #0000ff;">/></span> <span style="color: #0000ff;"></span><span style="color: #800000;">svg</span><span style="color: #0000ff;">></span></span></span></span></span></span></span>
-
标签的 id 属性可为渐变定义一个唯一的名称 -
CX,CY和r属性定义的最外层圆和Fx和Fy定义的最内层圆
-
渐变颜色范围可以由两个或两个以上的颜色组成。每种颜色用一个
标签指定。offset属性用来定义渐变色开始和结束 -
填充属性把ellipse元素链接到此渐变
菜鸟教程的在线实例:http://www.runoob.com/svg/svg-examples.html

HTML、CSS和JavaScript在Web開發中的作用分別是:1.HTML定義網頁結構,2.CSS控製網頁樣式,3.JavaScript添加動態行為。它們共同構建了現代網站的框架、美觀和交互性。

HTML的未來充滿了無限可能。 1)新功能和標準將包括更多的語義化標籤和WebComponents的普及。 2)網頁設計趨勢將繼續向響應式和無障礙設計發展。 3)性能優化將通過響應式圖片加載和延遲加載技術提升用戶體驗。

HTML、CSS和JavaScript在網頁開發中的角色分別是:HTML負責內容結構,CSS負責樣式,JavaScript負責動態行為。 1.HTML通過標籤定義網頁結構和內容,確保語義化。 2.CSS通過選擇器和屬性控製網頁樣式,使其美觀易讀。 3.JavaScript通過腳本控製網頁行為,實現動態和交互功能。

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增強WebevebDevelopment。

HTML是構建網頁結構的基石。 1.HTML定義內容結構和語義,使用、、等標籤。 2.提供語義化標記,如、、等,提升SEO效果。 3.通過標籤實現用戶交互,需注意表單驗證。 4.使用、等高級元素結合JavaScript實現動態效果。 5.常見錯誤包括標籤未閉合和屬性值未加引號,需使用驗證工具。 6.優化策略包括減少HTTP請求、壓縮HTML、使用語義化標籤等。

HTML是一種用於構建網頁的語言,通過標籤和屬性定義網頁結構和內容。 1)HTML通過標籤組織文檔結構,如、。 2)瀏覽器解析HTML構建DOM並渲染網頁。 3)HTML5的新特性如、、增強了多媒體功能。 4)常見錯誤包括標籤未閉合和屬性值未加引號。 5)優化建議包括使用語義化標籤和減少文件大小。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML的作用是通過標籤和屬性定義網頁的結構和內容。 1.HTML通過到、等標籤組織內容,使其易於閱讀和理解。 2.使用語義化標籤如、等增強可訪問性和SEO。 3.優化HTML代碼可以提高網頁加載速度和用戶體驗。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用