SVG In HTML Introduction
æ¬æåå ¶ç¸å ³ç¤ºä¾å±ç¤ºäºå¦ä½ä½¿ç¨å èç SVG ç»ä¸ä¸ªè¡¨åæä¾èæ¯å¾çï¼å®å±ç¤ºäºå¦ä½æç §ç¼åå¸¸è§ XHTML 代ç ç¸åçæ¹å¼æ¥éè¿ JavaScript å CSS æä½å¾çãæ³¨æï¼è¯¥ç¤ºä¾ä» 卿¯æ XHTMLï¼é HTMLï¼å¹¶éæäº SVG çæµè§å¨ä¸æ£å¸¸å·¥ä½ã
æºç
æºç å¦ä¸ï¼ æ¥ç示ä¾
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>XTech SVG Demo</title>
<style>
stop.begin { stop-color:yellow; }
stop.end { stop-color:green; }
body.invalid stop.end { stop-color:red; }
#err { display:none; }
body.invalid #err { display:inline; }
</style>
<script>
function signalError() {
document.getElementById('body').setAttribute("class", "invalid");
}
</script>
</head>
<body id="body"
style="position:absolute; z-index:0; border:1px solid black; left:5%; top:5%; width:90%; height:90%;">
<form>
<fieldset>
<legend>HTML Form</legend>
<p><label>Enter something:</label>
<input type="text"/>
<span id="err">Incorrect value!</span></p>
<p><input type="button" value="Activate!" onclick="signalError();" /></p>
</fieldset>
</form>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
viewBox="0 0 100 100" preserveAspectRatio="xMidYMid slice"
style="width:100%; height:100%; position:absolute; top:0; left:0; z-index:-1;">
<linearGradient id="gradient">
<stop class="begin" offset="0%"/>
<stop class="end" offset="100%"/>
</linearGradient>
<rect x="0" y="0" width="100" height="100" style="fill:url(#gradient)" />
<circle cx="50" cy="50" r="30" style="fill:url(#gradient)" />
</svg>
</body>
</html>
讨论
该页é¢ä¸»è¦æ¯å¸¸è§ç XHTMLãCSS å JavaScriptï¼å¯ä¸æè¶£çé¨åå°±æ¯å
å«äº <svg> å
ç´ ã该å
ç´ åå
¶åå
ç´ é½è¢«å£°æå¨ SVG çå½å空é´å
ãå®å
å«ä¸ä¸ªæ¸åå两个æ¸åå¡«å
çå½¢ç¶ã该æ¸åé¢è²çç»å¼é¢è²ç± CSS 设置ï¼å½ç¨æ·å¨è¡¨åä¸è¾å
¥äºé误信æ¯ï¼èæ¬ä¼ç» <body> 设置ä¸ä¸ª invalid 屿§ï¼æ ·å¼è§åå°æ¸åé¢è²çend-stopé¢è²è®¾ç½®ä¸ºçº¢è²ï¼å¦ä¸ä¸ªæ ·å¼è§åç¨äºå±ç¤ºé误æç¤ºä¿¡æ¯ï¼
è¯¥æ¹æ³æå¦ä¸å ç¹éè¦æ³¨æï¼
- æä»¬åç¬ä¸¾åºäºä¸ä¸ªå¯è½åå¨çç½ç«ææé¨åââ表åï¼å¹¶ä¸ºå ¶æ·»å äºå¸å¼äººçãäº¤äºæ§çèæ¯
- è¯¥æ¹æ³éè¿ä¸å±ç¤ºèæ¯å¾ççæ¹å¼ï¼ååå ¼å®¹äºä¸æ¯æ SVG çæµè§å¨
- å®é常ç®åä¸è¿è¡è¯å¥½
- è¿ä¸ªå¾çè½å¤æºè½çèªå¨éåºå ¶éè¦ç大å°
- æä»¬å¯ä»¥ç» HTML å SVG 齿¾å¼å£°ææ ·å¼è§å
- ç¸åçèæ¬åæ¶æä½äº HTML å SVG
- è¯¥ææ¡£å®å ¨ç¬¦åæ å
夿³¨ï¼å¦æéè¦ç»ä¸ä¸ªå
åµç SVG å
ç´ éè¿ DOM æ¹æ³æ·»å ä¸ä¸ªæå¤é¾çå¾çï¼æä»¬éè¦ä½¿ç¨ setAttributeNS æ¥è®¾ç½®å¤é¾å°å href. 示ä¾å¦ä¸ï¼
var img = document.createElementNS("http://www.w3.org/2000/svg", "image");
img.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", "move.png");
ç»è
viewBox 屿§å建äºä¸ä¸ªä¸ SVG å¾çåæ ç³»ç¸å ³èçé»è¾åæ ç³»ï¼éè¿è¿ç§æ¹å¼æä»¬çå¾ç被æ¾ç½®å°äºä¸ä¸ª 100x100 çè§è§ç³»ä¸ã
preserveAspectRatio 屿§æå®äºéè¦é¢è®¾çæ°æ®ï¼å³æå®äºåææå¤§å°å
å¾ççå±
ä¸ãéé
å¾çæå¤§å®½é«ï¼å¹¶è£åæäºå¤ä½é¨åã
æ ·å¼å±æ§æå®äº SVG å¨ form èæ¯ä¸çä½ç½®ã
åè§
- Another SVG in XHTML example: A swarm of motes
- Working example å¯ä»¥åæ¶å·¥ä½å¨å®è£ æ Adobe SVG Viwer ç Mozilla å IE æµè§å¨ä¸ã ï¼å¯¹äºåæ¶å·¥ä½å¨ Firefox å IE æµè§å¨ä¸å¾å è SVGï¼éè¦ä¸ºæ¯ä¸ªæµè§å¨çæå¡ææ¡£è®¾ç½®ä¸åç Cotent-typeãå 为å½ä½ åºäºä¸ä¸ªä»£çæå¡å¨è·å页é¢çæ¶åï¼å¦æå¨ç¬¬äºä¸ªæµè§å¨ä¸å 载该æ¡ä¾å°ä¼å¤±è´¥ï¼å å ¶ä¼è·åé误ç Content-Typeï¼