Heim  >  Artikel  >  Web-Frontend  >  In SVG

In SVG

WBOY
WBOYOriginal
2016-09-29 09:19:071279Durchsuche

Was ist SVG? Vielleicht haben viele Leute inzwischen von SVG gehört, aber sie wissen nicht unbedingt, was SVG ist: SVG (Scalable Vector Graphics Ein Haufen unverständlicher englischer ) skalierbare Vektorgrafiken, die das XML-Format verwenden Definieren Sie vektorbasierte Grafiken für das Netzwerk. Ihr Merkmal ist, dass die Grafikqualität nicht verloren geht, wenn das Bild vergrößert oder in der Größe geändert wird. Gleichzeitig handelt es sich um einen W3C-Standard wie DOM.

Bitmaps und Vektorgrafiken werden hier erklärt:

Bitmap, das Bild, das wir oft sehen, ist eine Ansammlung von Geschäften, die dicht auf einer Ebene angeordnet sind, was bedeutet, dass sie aus Punkten bestehen. Und wenn Sie es vergrößern, werden die entsprechenden Punkte vergrößert, wodurch das Bild sehr unscharf und grob aussieht.

Vektorgrafiken, auch objektorientierte Bilder oder Zeichenbilder genannt, werden mathematisch als eine Reihe von Punkten definiert, die durch Linien verbunden sind. Grafische Elemente in Vektordateien werden als Objekte bezeichnet. Jedes Objekt ist eine eigenständige Einheit mit Eigenschaften wie Farbe, Form, Umriss, Größe und Bildschirmposition. Sein Merkmal ist, dass das Bild nach der Vergrößerung unabhängig von der Auflösung nicht verzerrt wird und sich für Grafikdesign, Textdesign, einige Logo-Designs, Layout-Designs usw. eignet. Zu den Vektorgrafikformaten gehören CGM, SVG, AI (Adobe Illustrator), CDR (CorelDRAW), PDF, SWF, VML usw.

(ps: Der folgende Inhalt dieses Aufsatzes stammt teilweise von W3Cschool)

Ein einfaches 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><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><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><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>

SVG-Code-Analyse:

Die erste Zeile enthält die XML-Deklaration. Bitte beachten Sie das Standalone-Attribut! Diese Eigenschaft gibt an, ob diese SVG-Datei „eigenständig“ ist oder Verweise auf externe Dateien enthält. standalone="no" bedeutet, dass das SVG-Dokument auf eine externe Datei verweist – in diesem Fall eine DTD-Datei.

Die zweite und dritte Zeile verweisen auf diese externe SVG-DTD. Die DTD befindet sich unter „http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd“. Diese DTD befindet sich beim W3C und enthält alle erlaubten SVG-Elemente.

SVG-Code beginnt mit dem -Element, einschließlich des öffnenden Tags . Dies ist das Wurzelelement. Die Eigenschaften width und height legen die Breite und Höhe dieses SVG-Dokuments fest. Das Versionsattribut definiert die verwendete SVG-Version und das xmlns-Attribut definiert den SVG-Namespace.

SVGs wird zum Erstellen eines Kreises verwendet. Die Eigenschaften cx und cy definieren die x- und y-Koordinaten des Kreismittelpunkts. Wenn diese beiden Eigenschaften weggelassen werden, wird der Punkt auf (0, 0) gesetzt. Das r-Attribut definiert den Radius des Kreises.

Die Eigenschaften „Strich“ und „Strichbreite“ steuern, wie der Umriss einer Form angezeigt wird. Wir legen den Umriss des Kreises auf eine Breite von 2 Pixel und einen schwarzen Rand fest. Die Eigenschaft „fill“ legt die Farbe innerhalb der Form fest. Wir setzen die Füllfarbe auf Rot.

Das schließende Tag schließt das SVG-Element und das Dokument selbst.

Hinweis: Alle offenen Tags müssen ein schließendes Tag haben!

Vorteile von SVG

  • SVG kann von vielen Tools gelesen und geändert werden (Notepad kann auch einfach geöffnet und geändert werden)
  • SVG ist kleiner und komprimierbarer als JPEG- und GIF-Bilder.
  • SVG ist skalierbar
  • SVG-Bilder können in jeder Auflösung in hoher Qualität gedruckt werden
  • SVG kann vergrößert werden, ohne dass die Bildqualität verloren geht
  • Text in SVG-Bildern ist optional und durchsuchbar (ideal zum Erstellen von Karten)
  • SVG kann mit Technologien wie Java ausgeführt werden
  • SVG ist ein offener Standard
  • SVG-Dateien sind reines XML

SVG-Dateien können mit den folgenden Tags in HTML-Dokumente eingebettet werden: , .

Der SVG-Code kann direkt in die HTML-Seite eingebettet werden, oder Sie können direkt auf die SVG-Datei verlinken.

Rechteck

<span style="color: #0000ff;"><</span><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><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>
  • 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><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><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>
  • cx和cy属性定义圆点的x和y坐标。如果省略cx和cy,圆的中心会被设置为(0, 0)

  • r属性定义圆的半径

椭圆

<span style="color: #0000ff;"><</span><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><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><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><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>
  • CX属性定义的椭圆中心的x坐标

  • CY属性定义的椭圆中心的y坐标

  • RX属性定义的水平半径

  • RY属性定义的垂直半径

线

<span style="color: #0000ff;"><</span><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><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>
  • x1 属性在 x 轴定义线条的开始

  • y1 属性在 y 轴定义线条的开始

  • x2 属性在 x 轴定义线条的结束

  • y2 属性在 y 轴定义线条的结束

多边形

<span style="color: #0000ff;"><</span><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><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>
  • points 属性定义多边形每个角的 x 和 y 坐标

折线 (用于创建任何只有直线的形状)

<span style="color: #0000ff;"><</span><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><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 style="color: #0000ff;"><</span><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><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>

 

元素用于定义一个路径。

下面的命令可用于路径数据:

  • 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><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><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>

SVG 滤镜

SVG可用的滤镜是:

  • feBlend - 与图像相结合的滤镜
  • feColorMatrix - 用于彩色滤光片转换
  • feComponentTransfer
  • feComposite
  • feConvolveMatrix
  • feDiffuseLighting
  • feDisplacementMap
  • feFlood
  • feGaussianBlur
  • feImage
  • feMerge
  • feMorphology
  • feOffset - 过滤阴影
  • feSpecularLighting
  • feTile
  • feTurbulence
  • feDistantLight - 用于照明过滤
  • fePointLight - 用于照明过滤
  • feSpotLight - 用于照明过滤

除此之外,您可以在每个 SVG 元素上使用多个滤镜!

所有互联网的SVG滤镜定义在元素中。元素定义短并含有特殊元素(如滤镜)定义。

标签用来定义SVG滤镜。标签使用必需的id属性来定义向图形应用哪个滤镜?

<span style="color: #0000ff;"><</span><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><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span>
    <span style="color: #0000ff;"><</span><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><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><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>
  • 元素id属性定义一个滤镜的唯一名称

  • 元素定义模糊效果

  • in="SourceGraphic"这个部分定义了由整个图像创建效果

  • stdDeviation属性定义模糊量

  • 元素的滤镜属性用来把元素链接到"f1"滤镜

SVG

元素是用于创建阴影效果。我们的想法是采取一个SVG图形(图像或元素)并移动它在xy平面上一点儿。

第一个例子偏移一个矩形(带),然后混合偏移图像顶部(含):

<span style="color: #0000ff;"><</span><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><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span>
    <span style="color: #0000ff;"><</span><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><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><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><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>
  • 元素id属性定义一个滤镜的唯一名称
  • 元素的滤镜属性用来把元素链接到"f1"滤镜
<span style="color: #0000ff;"><</span><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><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span>
    <span style="color: #0000ff;"><</span><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><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><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><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><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>
  • 元素的stdDeviation属性定义了模糊量

SVG 渐变

渐变是一种从一种颜色到另一种颜色的平滑过渡。另外,可以把多个颜色的过渡应用到同一个元素上。

SVG渐变主要有两种类型:

  • Linear

  • Radial

SVG 线性渐变 -

元素用于定义线性渐变。

标签必须嵌套在的内部。标签是definitions的缩写,它可对诸如渐变之类的特殊元素进行定义。

线性渐变可以定义为水平,垂直或角渐变:

  • 当y1和y2相等,而x1和x2不同时,可创建水平渐变

  • 当x1和x2相等,而y1和y2不同时,可创建垂直渐变

  • 当x1和x2不同,且y1和y2不同时,可创建角形渐变

<span style="color: #0000ff;"><</span><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><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span>
    <span style="color: #0000ff;"><</span><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><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><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><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>
  • 标签的id属性可为渐变定义一个唯一的名称

  • 标签的X1,X2,Y1,Y2属性定义渐变开始和结束位置

  • 渐变的颜色范围可由两种或多种颜色组成。每种颜色通过一个标签来规定。offset属性用来定义渐变的开始和结束位置。

  • 填充属性把 ellipse 元素链接到此渐变

SVG 放射性渐变 -

元素用于定义放射性渐变。

标签必须嵌套在的内部。标签是definitions的缩写,它可对诸如渐变之类的特殊元素进行定义。

<span style="color: #0000ff;"><</span><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><span style="color: #800000;">defs</span><span style="color: #0000ff;">></span>
    <span style="color: #0000ff;"><</span><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><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><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><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>
  • 标签的 id 属性可为渐变定义一个唯一的名称

  • CX,CY和r属性定义的最外层圆和Fx和Fy定义的最内层圆

  • 渐变颜色范围可以由两个或两个以上的颜色组成。每种颜色用一个标签指定。offset属性用来定义渐变色开始和结束

  • 填充属性把ellipse元素链接到此渐变

菜鸟教程的在线实例:http://www.runoob.com/svg/svg-examples.html

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:CSS-Clear-FloatNächster Artikel:CSS-Clear-Float