SVG - คู่มือฉบับย่อ
SVG คืออะไร?
SVG, กราฟิกแบบเวกเตอร์ที่ปรับขนาดได้เป็นภาษาที่ใช้ XML เพื่อกำหนดกราฟิกแบบเวกเตอร์
SVG มีไว้เพื่อแสดงภาพบนเว็บ
เป็นภาพเวกเตอร์ภาพ SVG จะไม่สูญเสียคุณภาพไม่ว่าจะซูมออกหรือปรับขนาดอย่างไร
ภาพ SVG รองรับการโต้ตอบและภาพเคลื่อนไหว
SVG เป็นมาตรฐาน W3C
รูปแบบภาพอื่น ๆ เช่นภาพแรสเตอร์สามารถใช้ภาพ SVG ได้เช่นกัน
SVG ทำงานร่วมกับ XSLT และ DOM ของ HTML ได้ดี
ข้อดี
ใช้โปรแกรมแก้ไขข้อความใด ๆ เพื่อสร้างและแก้ไขภาพ SVG
ด้วยการใช้ XML รูปภาพ SVG จึงสามารถค้นหาจัดทำดัชนีได้และสามารถเขียนสคริปต์และบีบอัดได้
ภาพ SVG สามารถปรับขนาดได้สูงเนื่องจากไม่สูญเสียคุณภาพไม่ว่าจะซูมออกหรือปรับขนาดอย่างไร
คุณภาพการพิมพ์ที่ดีในทุกความละเอียด
SVG เป็นมาตรฐานแบบเปิด
ข้อเสีย
ขนาดรูปแบบข้อความจะใหญ่กว่าเมื่อเทียบกับภาพแรสเตอร์ที่จัดรูปแบบไบนารี
ขนาดอาจใหญ่ได้สำหรับภาพขนาดเล็ก
ตัวอย่าง
สามารถใช้ตัวอย่าง XML ต่อไปนี้เพื่อวาดวงกลมในเว็บเบราว์เซอร์
<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="red" stroke-width="2" fill="green" />
</svg>
ฝัง SVG XML โดยตรงในหน้า HTML
testSVG.htm
<html>
<title>SVG Image</title>
<body>
<h1>Sample SVG Image</h1>
<svg width="100" height="100">
<circle cx="50" cy="50" r="40" stroke="red" stroke-width="2" fill="green" />
</svg>
</body>
</html>
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ ใน Internet Explorer จำเป็นต้องใช้ตัวควบคุม activeX เพื่อดูภาพ SVG
SVG ผสานรวมกับ HTML อย่างไร
องค์ประกอบ <svg> ระบุจุดเริ่มต้นของภาพ SVG
แอตทริบิวต์ความกว้างและความสูงขององค์ประกอบ <svg> กำหนดความสูงและความกว้างของรูปภาพ SVG
จากตัวอย่างข้างต้นเราใช้องค์ประกอบ <circle> เพื่อวาดวงกลม
cx และ cy แอตทริบิวต์แสดงถึงศูนย์กลางของวงกลม ค่าดีฟอลต์คือ (0,0) r แอตทริบิวต์แสดงรัศมีของวงกลม
คุณลักษณะอื่น ๆ ของเส้นโครงร่างและความกว้างของเส้นโครงร่างควบคุมการจัดโครงร่างของวงกลม
เติมแอตทริบิวต์กำหนดสีเติมของวงกลม
แท็กปิด </svg> ระบุจุดสิ้นสุดของภาพ SVG
SVG มีรูปทรงจำนวนมากที่สามารถใช้ในการวาดภาพ ต่อไปนี้เป็นรูปร่างทั่วไป
ซีเนียร์ | ประเภทรูปร่างและคำอธิบาย |
---|---|
1 | rect ใช้ในการวาดรูปสี่เหลี่ยมผืนผ้า |
2 | วงกลม ใช้ในการวาดวงกลม |
3 | วงรี ใช้ในการวาดวงรี |
4 | ไลน์ ใช้ในการลากเส้น |
5 | รูปหลายเหลี่ยม ใช้ในการวาดรูปทรงปิดซึ่งประกอบด้วยเส้นตรงที่เชื่อมต่อกัน |
6 | โพลีไลน์ ใช้ในการวาดรูปร่างเปิดซึ่งประกอบด้วยเส้นตรงที่เชื่อมต่อกัน |
7 | เส้นทาง ใช้เพื่อวาดเส้นทางใด ๆ |
องค์ประกอบ <text> ใช้ในการวาดข้อความ
คำประกาศ
ต่อไปนี้คือการประกาศไวยากรณ์ของ <text>ธาตุ. เราได้แสดงคุณสมบัติหลักเท่านั้น
<text
x="x-cordinates"
y="y-cordinates"
dx="list of lengths"
dy="list of lengths"
rotate="list of numbers"
textlength="length"
lengthAdjust="spacing" >
</text>
คุณลักษณะ
ซีเนียร์ | คุณสมบัติและคำอธิบาย |
---|---|
1 | x - พิกัดแกน x ของร่ายมนตร์ |
2 | y - พิกัดแกน y ของร่ายมนตร์ |
3 | dx - เลื่อนไปตามแกน x |
4 | dy - เลื่อนไปตามแกน y |
5 | rotate - การหมุนใช้กับร่ายมนตร์ทั้งหมด |
6 | textlength - การแสดงผลความยาวของข้อความ |
7 | lengthAdjust - ประเภทของการปรับแต่งตามความยาวที่แสดงผลของข้อความ |
ตัวอย่าง
testSVG.htm<html>
<title>SVG Text</title>
<body>
<h1>Sample SVG Text</h1>
<svg width="800" height="800">
<g>
<text x="30" y="12" >Text: </text>
<text x="30" y="30" fill="rgb(121,0,121)">WWW.TutorialsPoint.COM</text>
</g>
</svg>
</body>
</html>
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG
ข้อความที่มีการหมุน
<html>
<title>SVG Text</title>
<body>
<h1>Sample SVG Text</h1>
<svg width="800" height="800">
<g>
<text x="30" y="12" >Multiline Text: </text>
<text x="30" y="30" fill="rgb(121,0,121)">WWW.TutorialsPoint.COM
<tspan x="30" y="50" font-weight="bold">Simply Easy learning.</tspan>
<tspan x="30" y="70">We teach just for free.</tspan>
</text>
</g>
</svg>
</body>
</html>
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG
ข้อความหลายบรรทัด
<html>
<title>SVG Text</title>
<body>
<h1>Sample SVG Text</h1>
<svg width="570" height="100">
<g>
<text x="30" y="12" >Multiline Text: </text>
<text x="30" y="30" fill="rgb(121,0,121)">WWW.TutorialsPoint.COM
<tspan x="30" y="50" font-weight="bold">Simply Easy learning.</tspan>
<tspan x="30" y="70">We teach just for free.</tspan>
</text>
</g>
</svg>
</body>
</html>
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG
ข้อความไฮเปอร์ลิงค์
<html>
<title>SVG Text</title>
<body>
<h1>Sample SVG Text</h1>
<svg width="800" height="800">
<g>
<text x="30" y="10" >Text as Link: </text>
<a xlink:href="http://www.tutorialspoint.com/svg/" target="_blank">
<text font-family="Verdana" font-size="20" x="30" y="30"
fill="rgb(121,0,121)">WWW.TutorialsPoint.COM</text>
</a>
</g>
</svg>
</body>
</html>
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG
SVG รองรับคุณสมบัติหลายจังหวะ
ต่อไปนี้เป็นคุณสมบัติหลักของจังหวะที่ใช้
ซีเนียร์ | ประเภทและคำอธิบายของโรคหลอดเลือดสมอง |
---|---|
1 | stroke - กำหนดสีของข้อความเส้นหรือโครงร่างขององค์ประกอบใด ๆ |
2 | stroke-width - กำหนดความหนาของข้อความเส้นหรือโครงร่างขององค์ประกอบใด ๆ |
3 | stroke-linecap - กำหนดประเภทต่างๆของการสิ้นสุดของเส้นหรือโครงร่างของเส้นทางใด ๆ |
4 | stroke-dasharray - ใช้สร้างเส้นประ |
ตัวอย่าง
testSVG.htm<html>
<title>SVG Stroke</title>
<body>
<h1>Sample SVG Stroke</h1>
<svg width="800" height="800">
<g>
<text x="30" y="30" >Using stroke: </text>
<path stroke="red" d="M 50 50 L 300 50" />
<path stroke="green" d="M 50 70 L 300 70" />
<path stroke="blue" d="M 50 90 L 300 90" />
</g>
</svg>
</body>
</html>
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG
ความกว้างของเส้นขีด
<html>
<title>SVG Stroke</title>
<body>
<h1>Sample SVG Stroke</h1>
<svg width="800" height="800">
<text x="30" y="10" >Using stroke-width: </text>
<path stroke-width="2" stroke="black" d="M 50 50 L 300 50" />
<path stroke-width="4" stroke="black" d="M 50 70 L 300 70" />
<path stroke-width="6" stroke="black" d="M 50 90 L 300 90" />
</svg>
</body>
</html>
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG
โรคหลอดเลือดสมอง
<html>
<title>SVG Stroke</title>
<body>
<h1>Sample SVG Stroke</h1>
<svg width="800" height="800">
<g>
<text x="30" y="30" >Using stroke-linecap: </text>
<path stroke-linecap="butt" stroke-width="6"
stroke="black" d="M 50 50 L 300 50" />
<path stroke-linecap="round" stroke-width="6"
stroke="black" d="M 50 70 L 300 70" />
<path stroke-linecap="square" stroke-width="6"
stroke="black" d="M 50 90 L 300 90" />
</g>
</svg>
</body>
</html>
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG
โรคหลอดเลือดสมอง dasharray
<html>
<title>SVG Stroke</title>
<body>
<h1>Sample SVG Stroke</h1>
<svg width="800" height="800">
<g>
<text x="30" y="30" >Using stroke-dasharray: </text>
<path stroke-dasharray="5,5" stroke-width="6"
stroke="black" d="M 50 50 L 300 50" />
<path stroke-dasharray="10,10" stroke-width="6"
stroke="black" d="M 50 70 L 300 70" />
<path stroke-dasharray="20,10,5,5,5,10" stroke-width="6"
stroke="black" d="M 50 90 L 300 90" />
</g>
</svg>
</body>
</html>
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG
SVG ใช้องค์ประกอบ <filter> เพื่อกำหนดตัวกรอง องค์ประกอบ <filter> ใช้แอตทริบิวต์ id เพื่อระบุโดยไม่ซ้ำกันตัวกรองถูกกำหนดภายในองค์ประกอบ <def> จากนั้นจะอ้างอิงโดยองค์ประกอบกราฟิกตามรหัส
SVG มีชุดฟิลเตอร์มากมาย ต่อไปนี้เป็นรายการตัวกรองที่ใช้กันทั่วไป
- feBlend
- feColorMatrix
- feComponentTransfer
- feComposite
- feConvolveMatrix
- feDiffuseLighting
- feDisplacementMap
- feFlood
- feGaussianBlur
- feImage
- feMerge
- feMorphology
- feOffset - ตัวกรองสำหรับเงาตก
- feSpecularLighting
- feTile
- feTurbulence
- feDistantLight
- fePointLight
- feSpotLight
คำประกาศ
ต่อไปนี้คือการประกาศไวยากรณ์ของ <filter>ธาตุ. เราได้แสดงคุณสมบัติหลักเท่านั้น
<filter
filterUnits="units to define filter effect region"
primitiveUnits="units to define primitive filter subregion"
x="x-axis co-ordinate"
y="y-axis co-ordinate"
width="length"
height="length"
filterRes="numbers for filter region"
xlink:href="reference to another filter" >
</filter>
คุณลักษณะ
ซีเนียร์ | ชื่อและคำอธิบาย |
---|---|
1 | filterUnits- หน่วยในการกำหนดขอบเขตผลการกรอง ระบุระบบพิกัดสำหรับค่าความยาวต่างๆภายในตัวกรองและสำหรับแอตทริบิวต์ที่กำหนดภูมิภาคย่อยของตัวกรอง ถ้า filterUnits = "userSpaceOnUse" ค่าต่างๆจะแสดงถึงค่าในระบบพิกัดผู้ใช้ปัจจุบันในเวลาที่ใช้องค์ประกอบ "ตัวกรอง" ถ้า filterUnits = "objectBoundingBox" ค่าจะแสดงค่าเป็นเศษส่วนหรือเปอร์เซ็นต์ของกล่องขอบเขตบนองค์ประกอบที่อ้างอิงในเวลาที่ใช้องค์ประกอบ "ตัวกรอง" ค่าเริ่มต้นคือ userSpaceOnUse |
2 | primitiveUnits- หน่วยในการกำหนดขอบเขตผลการกรอง ระบุระบบพิกัดสำหรับค่าความยาวต่างๆภายในตัวกรองและสำหรับแอตทริบิวต์ที่กำหนดภูมิภาคย่อยของตัวกรอง ถ้า filterUnits = "userSpaceOnUse" ค่าต่างๆจะแสดงถึงค่าในระบบพิกัดผู้ใช้ปัจจุบันในเวลาที่ใช้องค์ประกอบ "ตัวกรอง" ถ้า filterUnits = "objectBoundingBox" ค่าจะแสดงค่าเป็นเศษส่วนหรือเปอร์เซ็นต์ของกล่องขอบเขตบนองค์ประกอบที่อ้างอิงในเวลาที่ใช้องค์ประกอบ "ตัวกรอง" ค่าเริ่มต้นคือ userSpaceOnUse |
3 | x- แกน x ประสานกันของกล่องขอบเขตตัวกรอง ค่าเริ่มต้นคือ 0 |
4 | y- แกน y ประสานกันของกล่องขอบเขตตัวกรอง ค่าเริ่มต้นคือ 0 |
5 | width- ความกว้างของกล่องขอบเขตตัวกรอง ค่าเริ่มต้นคือ 0 |
6 | height- ความสูงของกล่องขอบเขตตัวกรอง ค่าเริ่มต้นคือ 0 |
7 | filterRes - ตัวเลขแสดงพื้นที่ตัวกรอง |
8 | xlink:href - ใช้เพื่ออ้างถึงตัวกรองอื่น |
ตัวอย่าง
testSVG.htm<html>
<title>SVG Filter</title>
<body>
<h1>Sample SVG Filter</h1>
<svg width="800" height="800">
<defs>
<filter id="filter1" x="0" y="0">
<feGaussianBlur in="SourceGraphic" stdDeviation="8" />
</filter>
<filter id="filter2" x="0" y="0" width="200%" height="200%">
<feOffset result="offOut" in="SourceAlpha" dx="20" dy="20" />
<feGaussianBlur result="blurOut" in="offOut" stdDeviation="10" />
<feBlend in="SourceGraphic" in2="blurOut" mode="normal" />
</filter>
</defs>
<g>
<text x="30" y="50" >Using Filters (Blur Effect): </text>
<rect x="100" y="100" width="90" height="90" stroke="green" stroke-width="3"
fill="green" filter="url(#filter1)" />
</g>
</svg>
</body>
</html>
องค์ประกอบ <filter> สองรายการที่กำหนดเป็น filter1 และ filter2
เอฟเฟกต์ฟิลเตอร์ feGaussianBlur กำหนดเอฟเฟกต์เบลอด้วยปริมาณความเบลอโดยใช้ stdDeviation
in = "SourceGraphic" กำหนดว่าเอฟเฟกต์สามารถใช้ได้กับทั้งองค์ประกอบ
feOffset กรองเอฟเฟกต์ใช้เพื่อสร้างเอฟเฟกต์เงา in = "SourceAlpha" กำหนดว่าเอฟเฟกต์สามารถใช้ได้กับส่วนอัลฟาของกราฟิก RGBA
องค์ประกอบ <rect> เชื่อมโยงตัวกรองโดยใช้แอตทริบิวต์ตัวกรอง
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG
กรองด้วยเอฟเฟกต์เงา
<html>
<title>SVG Filter</title>
<body>
<h1>Sample SVG Filter</h1>
<svg width="800" height="800">
<defs>
<filter id="filter1" x="0" y="0">
<feGaussianBlur in="SourceGraphic" stdDeviation="8" />
</filter>
<filter id="filter2" x="0" y="0" width="200%" height="200%">
<feOffset result="offOut" in="SourceAlpha" dx="20" dy="20" />
<feGaussianBlur result="blurOut" in="offOut" stdDeviation="10" />
<feBlend in="SourceGraphic" in2="blurOut" mode="normal" />
</filter>
</defs>
<g>
<text x="30" y="50" >Using Filters (Shadow Effect): </text>
<rect x="100" y="100" width="90" height="90" stroke="green" stroke-width="3"
fill="green" filter="url(#filter2)" />
</g>
</svg>
</body>
</html>
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG
SVG ใช้องค์ประกอบ <pattern> เพื่อกำหนดรูปแบบ รูปแบบถูกกำหนดโดยใช้องค์ประกอบ <pattern> และใช้เพื่อเติมองค์ประกอบกราฟิกในแบบเรียงต่อกัน
คำประกาศ
ต่อไปนี้คือการประกาศไวยากรณ์ของ <pattern>ธาตุ. เราได้แสดงคุณสมบัติหลักเท่านั้น
<pattern
patternUnits="units to define x,y, width and height attributes."
patternContentUnits ="units to define co-ordinate system of contents of pattern"
patternTransform = "definition of an additional transformation from the pattern coordinate system onto the target coordinate system"
x="x-axis co-ordinate"
y="y-axis co-ordinate"
width="length"
height="length"
preserveAspectRatio="to preserve width/height ratio of original content"
xlink:href="reference to another pattern" >
</pattern>
คุณลักษณะ
ซีเนียร์ | ชื่อและคำอธิบาย |
---|---|
1 | patternUnits- หน่วยในการกำหนดขอบเขตผลรูปแบบ ระบุระบบพิกัดสำหรับค่าความยาวต่างๆภายในรูปแบบและสำหรับแอตทริบิวต์ที่กำหนดขอบเขตย่อยของรูปแบบ ถ้า patternUnits = "userSpaceOnUse" ค่าจะแสดงถึงค่าในระบบพิกัดผู้ใช้ปัจจุบันในเวลาที่ใช้องค์ประกอบ "pattern" ถ้า patternUnits = "objectBoundingBox" ค่าจะแสดงค่าในรูปเศษส่วนหรือเปอร์เซ็นต์ของกล่องขอบเขตบนองค์ประกอบที่อ้างอิงในเวลาที่ใช้องค์ประกอบ "pattern" ค่าเริ่มต้นคือ userSpaceOnUse |
2 | patternContentUnits- หน่วยเพื่อกำหนดขอบเขตเนื้อหารูปแบบ ระบุระบบพิกัดสำหรับค่าความยาวต่างๆภายในรูปแบบและสำหรับแอตทริบิวต์ที่กำหนดขอบเขตย่อยของรูปแบบ ถ้า patternContentUnits = "userSpaceOnUse" ค่าจะแสดงถึงค่าในระบบพิกัดผู้ใช้ปัจจุบันในเวลาที่ใช้องค์ประกอบ "pattern" ถ้า patternContentUnits = "objectBoundingBox" ค่าจะแสดงค่าในรูปเศษส่วนหรือเปอร์เซ็นต์ของกล่องขอบเขตบนองค์ประกอบที่อ้างอิงในเวลาที่ใช้องค์ประกอบ "pattern" ค่าเริ่มต้นคือ userSpaceOnUse |
3 | x- แกน x ประสานงานของกล่องขอบเขตรูปแบบ ค่าเริ่มต้นคือ 0 |
4 | y- แกน y ประสานงานของกรอบรูปแบบ ค่าเริ่มต้นคือ 0 |
5 | width- ความกว้างของกรอบรูปแบบ ค่าเริ่มต้นคือ 0 |
6 | height- ความสูงของกรอบรูปแบบ ค่าเริ่มต้นคือ 0 |
7 | preserveAspectRatio - เพื่อรักษาอัตราส่วนความกว้าง / ความสูงของเนื้อหาต้นฉบับ |
8 | xlink:href - ใช้เพื่ออ้างถึงรูปแบบอื่น |
ตัวอย่าง
testSVG.htm<html>
<title>SVG Pattern</title>
<body>
<h1>Sample SVG Pattern</h1>
<svg width="800" height="800">
<defs>
<pattern id="pattern1" patternUnits="userSpaceOnUse"
x="0" y="0" width="100" height="100"
viewBox="0 0 4 4" >
<path d="M 0 0 L 3 0 L 1.5 3 z" fill="blue" stroke="green" />
</pattern>
</defs>
<g>
<text x="30" y="50" >Using Pattern (Triangles): </text>
<rect x="100" y="100" width="300" height="300" stroke="green"
stroke-width="3" fill="url(#pattern1)" />
</g>
</svg>
</body>
</html>
องค์ประกอบ <pattern> หนึ่งรายการที่กำหนดเป็นรูปแบบ 1
ในรูปแบบช่องมองภาพถูกกำหนดและกำหนดเส้นทางที่จะใช้เป็นรูปแบบ
ในองค์ประกอบ rect ในแอตทริบิวต์เติม url ของรูปแบบถูกระบุเพื่อเติมเต็มรูปแบบสี่เหลี่ยมผืนผ้าที่สร้างขึ้นก่อนหน้านี้
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG
การไล่ระดับสีหมายถึงการเปลี่ยนสีหนึ่งไปเป็นสีอื่นอย่างราบรื่นภายในรูปร่าง SVG มีการไล่ระดับสีสองประเภท
Linear Gradients - แสดงถึงการเปลี่ยนแปลงเชิงเส้นของสีหนึ่งไปยังอีกสีหนึ่งจากทิศทางหนึ่งไปอีกทิศทางหนึ่ง
Radial Gradients - หมายถึงการเปลี่ยนสีหนึ่งไปเป็นวงกลมจากทิศทางหนึ่งไปยังอีกสีหนึ่ง
การไล่ระดับสีเชิงเส้น
คำประกาศ
ต่อไปนี้คือการประกาศไวยากรณ์ของ <linearGradient>ธาตุ. เราได้แสดงคุณสมบัติหลักเท่านั้น
<linearGradient
gradientUnits ="units to define co-ordinate system of contents of gradient"
gradientTransform = "definition of an additional transformation from the gradient coordinate system onto the target coordinate system"
x1="x-axis co-ordinate"
y1="y-axis co-ordinate"
x2="x-axis co-ordinate"
y2="y-axis co-ordinate"
spreadMethod="indicates method of spreading the gradient within graphics element"
xlink:href="reference to another gradient" >
</linearGradient>
คุณลักษณะ
ซีเนียร์ | ชื่อและคำอธิบาย |
---|---|
1 | gradientUnits- หน่วยเพื่อกำหนดระบบพิกัดสำหรับค่าความยาวต่างๆภายในการไล่ระดับสี ถ้า gradientUnits = "userSpaceOnUse" ค่าจะแทนค่าในระบบพิกัดผู้ใช้ปัจจุบันในเวลาที่ใช้องค์ประกอบการไล่ระดับสี ถ้า patternContentUnits = "objectBoundingBox" ค่าจะแสดงค่าในรูปเศษส่วนหรือเปอร์เซ็นต์ของกล่องขอบเขตบนองค์ประกอบที่อ้างอิงในเวลาที่ใช้องค์ประกอบการไล่ระดับสี ค่าเริ่มต้นคือ userSpaceOnUse |
2 | x1- แกน x ประสานงานของเวกเตอร์ไล่ระดับสี ค่าเริ่มต้นคือ 0 |
3 | y1- แกน y ประสานงานของเวกเตอร์การไล่ระดับสี ค่าเริ่มต้นคือ 0 |
4 | x2- แกน x ประสานงานของเวกเตอร์ไล่ระดับสี ค่าเริ่มต้นคือ 0 |
5 | y2- แกน y ประสานงานของเวกเตอร์การไล่ระดับสี ค่าเริ่มต้นคือ 0 |
6 | spreadMethod- ระบุวิธีการกระจายการไล่ระดับสีภายในองค์ประกอบกราฟิก ค่าเริ่มต้นคือ 'pad' |
7 | xlink:href - ใช้เพื่ออ้างถึงการไล่ระดับสีอื่น |
ตัวอย่าง
testSVG.htm<html>
<title>SVG Linear Gradient</title>
<body>
<h1>Sample SVG Linear Gradient</h1>
<svg width="600" height="600">
<defs>
<linearGradient id="sampleGradient">
<stop offset="0%" stop-color="#FF0000" />
<stop offset="100%" stop-color="#00FFF00" />
</linearGradient>
</defs>
<g>
<text x="30" y="50" >Using Linear Gradient: </text>
<rect x="100" y="100" width="200" height="200" stroke="green" stroke-width="3"
fill="url(#sampleGradient)" />
</g>
</svg>
</body>
</html>
องค์ประกอบ <linearGradient> หนึ่งรายการที่กำหนดเป็น sampleGradient
ใน linearGradient จะมีการกำหนดออฟเซตสองสีด้วยสองสี
ในองค์ประกอบ rect ในแอตทริบิวต์เติม url ของการไล่ระดับสีถูกระบุเพื่อเติมเต็มสี่เหลี่ยมผืนผ้าด้วยการไล่ระดับสีที่สร้างขึ้นก่อนหน้านี้
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG
การไล่ระดับสีแบบเรเดียล
คำประกาศ
ต่อไปนี้คือการประกาศไวยากรณ์ของ <radialGradient>ธาตุ. เราได้แสดงคุณสมบัติหลักเท่านั้น
<radialGradient
gradientUnits ="units to define co-ordinate system of contents of gradient"
gradientTransform = "definition of an additional transformation from the gradient coordinate system onto the target coordinate system"
cx="x-axis co-ordinate of center of circle."
cy="y-axis co-ordinate of center of circle."
r="radius of circle"
fx="focal point for the radial gradient"
fy="focal point for the radial gradient"
spreadMethod="indicates method of spreading the gradient within graphics element"
xlink:href="reference to another gradient" >
</radialGradient>
คุณลักษณะ
ซีเนียร์ | ชื่อและคำอธิบาย |
---|---|
1 | gradientUnits- หน่วยเพื่อกำหนดระบบพิกัดสำหรับค่าความยาวต่างๆภายในการไล่ระดับสี ถ้า gradientUnits = "userSpaceOnUse" ค่าจะแทนค่าในระบบพิกัดผู้ใช้ปัจจุบันในเวลาที่ใช้องค์ประกอบการไล่ระดับสี ถ้า patternContentUnits = "objectBoundingBox" ค่าจะแสดงค่าในรูปเศษส่วนหรือเปอร์เซ็นต์ของกล่องขอบเขตบนองค์ประกอบที่อ้างอิงในเวลาที่ใช้องค์ประกอบการไล่ระดับสี ค่าเริ่มต้นคือ userSpaceOnUse |
2 | cx- แกน x ประสานตรงกลางวงกลมที่ใหญ่ที่สุดของเวกเตอร์ไล่ระดับสี ค่าเริ่มต้นคือ 0 |
3 | cy- แกน y ประสานตรงกลางวงกลมที่ใหญ่ที่สุดของเวกเตอร์ไล่ระดับสี ค่าเริ่มต้นคือ 0 |
4 | r- รัศมีของศูนย์กลางของวงกลมที่ใหญ่ที่สุดของเวกเตอร์ไล่ระดับสี ค่าเริ่มต้นคือ 0 |
5 | fx- จุดโฟกัสของการไล่ระดับสีในแนวรัศมี ค่าเริ่มต้นคือ 0 |
6 | fy- จุดโฟกัสของการไล่ระดับสีในแนวรัศมี ค่าเริ่มต้นคือ 0 |
7 | spreadMethod- ระบุวิธีการกระจายการไล่ระดับสีภายในองค์ประกอบกราฟิก ค่าเริ่มต้นคือ 'pad' |
8 | xlink:href - ใช้เพื่ออ้างถึงการไล่ระดับสีอื่น |
ตัวอย่าง
testSVG.htm<html>
<title>SVG Radial Gradient</title>
<body>
<h1>Sample SVG Radial Gradient</h1>
<svg width="600" height="600">
<defs>
<radialGradient id="sampleGradient">
<stop offset="0%" stop-color="#FF0000" />
<stop offset="100%" stop-color="#00FFF00" />
</radialGradient>
</defs>
<g>
<text x="30" y="50" >Using Radial Gradient: </text>
<rect x="100" y="100" width="200" height="200" stroke="green" stroke-width="3"
fill="url(#sampleGradient)" />
</g>
</svg>
</body>
</html>
องค์ประกอบ <radialGradient> หนึ่งรายการที่กำหนดเป็น sampleGradient
ใน radialGradient จะมีการกำหนดออฟเซ็ตสองสีด้วยสองสี
ในองค์ประกอบ rect ในแอตทริบิวต์เติม url ของการไล่ระดับสีถูกระบุเพื่อเติมเต็มสี่เหลี่ยมผืนผ้าด้วยการไล่ระดับสีที่สร้างขึ้นก่อนหน้านี้
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG
ภาพ SVG สามารถตอบสนองต่อการกระทำของผู้ใช้ SVG รองรับเหตุการณ์ตัวชี้เหตุการณ์แป้นพิมพ์และเหตุการณ์เอกสาร ลองพิจารณาตัวอย่างต่อไปนี้
ตัวอย่าง
testSVG.htm<html>
<title>SVG Interactivity</title>
<body>
<h1>Sample Interactivity</h1>
<svg width="600" height="600">
<script type="text/JavaScript">
<![CDATA[
function showColor() {
alert("Color of the Rectangle is: "+
document.getElementById("rect1").getAttributeNS(null,"fill"));
}
function showArea(event){
var width = parseFloat(event.target.getAttributeNS(null,"width"));
var height = parseFloat(event.target.getAttributeNS(null,"height"));
alert("Area of the rectangle is: " +width +"x"+ height);
}
function showRootChildrenCount() {
alert("Total Children: "+document.documentElement.childNodes.length);
}
]]>
</script>
<g>
<text x="30" y="50" onClick="showColor()">Click me to show rectangle color.</text>
<rect id="rect1" x="100" y="100" width="200" height="200"
stroke="green" stroke-width="3" fill="red"
onClick="showArea(event)"/>
<text x="30" y="400" onClick="showRootChildrenCount()">
Click me to print child node count.</text>
</g>
</svg>
</body>
</html>
คำอธิบาย
SVG รองรับฟังก์ชัน JavaScript / ECMAScript บล็อกสคริปต์ต้องอยู่ในบล็อก CDATA ให้พิจารณาการสนับสนุนข้อมูลอักขระใน XML
องค์ประกอบ SVG รองรับเหตุการณ์เมาส์เหตุการณ์แป้นพิมพ์ เราใช้เหตุการณ์ onClick เพื่อเรียกใช้ฟังก์ชันจาวาสคริปต์
ในฟังก์ชันจาวาสคริปต์เอกสารแสดงถึงเอกสาร SVG และสามารถใช้เพื่อรับองค์ประกอบ SVG
ในฟังก์ชันจาวาสคริปต์เหตุการณ์แสดงถึงเหตุการณ์ปัจจุบันและสามารถใช้เพื่อรับองค์ประกอบเป้าหมายที่เหตุการณ์ได้รับการยกระดับ
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG คลิกที่แต่ละข้อความและสี่เหลี่ยมผืนผ้าเพื่อดูผลลัพธ์
<a> องค์ประกอบใช้ในการสร้างไฮเปอร์ลิงก์ แอตทริบิวต์ "xlink: href" ใช้เพื่อส่งผ่าน IRI (Internationalized Resource Identifiers) ซึ่งเสริมกับ URI (Uniform Resource Identifiers)
คำประกาศ
ต่อไปนี้คือการประกาศไวยากรณ์ของ <a>ธาตุ. เราได้แสดงคุณสมบัติหลักเท่านั้น
<a
xlink:show = "new" | "replace"
xlink:actuate = "onRequest"
xlink:href = "<IRI>"
target = "_replace" | "_self" | "_parent" | "_top" | "_blank" | "<XML-Name>" >
</a>
คุณลักษณะ
ซีเนียร์ | ชื่อและคำอธิบาย |
---|---|
1 | xlink:show- เพื่อวัตถุประสงค์ในการจัดทำเอกสารสำหรับโปรเซสเซอร์ที่รับรู้ XLink ค่าเริ่มต้นใหม่ |
2 | xlink:actuate - เพื่อวัตถุประสงค์ในการจัดทำเอกสารสำหรับโปรเซสเซอร์ที่รับรู้ XLink |
3 | xlink:href - ตำแหน่งของวัตถุอ้างอิง |
4 | target - ใช้เมื่อเป้าหมายของทรัพยากรสิ้นสุดเป็นไปได้ |
ตัวอย่าง
testSVG.htm<html>
<title>SVG Linking</title>
<body>
<h1>Sample Link</h1>
<svg width="800" height="800">
<g>
<a xlink:href="http://www.tutorialspoint.com">
<text x="0" y="15" fill="black" >
Click me to load TutorialsPoint DOT COM.</text>
</a>
</g>
<g>
<text x="0" y="65" fill="black" >
Click in the rectangle to load TutorialsPoint DOT COM</text>
<a xlink:href="http://www.tutorialspoint.com">
<rect x="100" y="80" width="300" height="100"
style="fill:rgb(121,0,121);stroke-width:3;stroke:rgb(0,0,0)" />
</a>
</g>
</svg>
</body>
</html>
เอาต์พุต
เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG คลิกที่ลิงค์และสี่เหลี่ยมผืนผ้าเพื่อดูผลลัพธ์