利用SVG能夠實現不少複雜的圖形,SVG的功能開發者們已經開發許多,今天初識一下SVG的基本圖形繪製,css
<svg viewbox="0,0,400,400" style="background: red;" width="400" height="400"> <circle r="100" cx="200" cy="200" fill="blue" stroke="#f90" stroke-width="10" /> <rect x="200" y="200" width="300" height="300" fill="red" stroke="black" stroke-width="2" rx='10' ry="10" fill-opacity="0.4" transform="translate(-150,-150)" /> <polygon points="10 20,30 20,20 30" fill="#652" stroke="black" stroke-width="2"/> </svg> <div class="" id="box"></div> <script> window.onload=function(){ var cirle=document.querySelector("circle"); var rect=document.querySelector("rect"); var cx=cirle.getAttribute('stroke'); console.log(cx); cirle.setAttribute("stroke-dasharray",3+' '+Math.PI*2*100/45) //打印屬性函數; function message(obj) { var sm=''; for (var i in obj) { sm += i +','+ obj[i] + '<br/>'; } return sm; } document.getElementById('box').innerHTML=message(cirle); } </script>
在上面的代碼中,咱們能夠看到繪製了圓,矩形,多邊形,關於這些圖形的基本屬性在上面的代碼已經獲得了很好的體現,而且有一個transform屬性,這個和CSS3的transform區別不大,惟一須要注意的是css3的transform變換的時候,座標是基於中心點的,而svg的transform變換的原點是在左上角的;固然這兩個變換的原點都是能夠從新設定的;html
而在JS代碼中,咱們打印出了svg最基本的屬性,打印以後,發現不一樣的瀏覽器對SVG的支持並不一致,在firefox和chrome中差異很大;有興趣的夥伴們能夠測試一下;css3
-------------------------分割線-------------------------chrome
<svg> <defs> <clipPath id="clipPath"> <text x="10" y="70" fill="red" style="font-size: 40px;" >我是中國人</text> </clipPath> </defs> <g style="clip-path:url(#clipPath)"> <rect x="10" y="30" width="200" height="100" fill="red" /> <circle r="10" cx="110" cy="55" fill="blue" /> </g> </svg>
在上面的代碼中,是關於svg clipPath的,不得不說clippath這個裁剪功能確實強大!!待續....瀏覽器
關於SVG的內容參考,提供如下兩個網站:svg