SVG 基礎(chǔ)形狀

SVG有一些預(yù)定義的形狀元素椿息,可被開(kāi)發(fā)者使用和操作:

  • 矩形 <rect>
  • 圓形 <circle>
  • 橢圓 <ellipse>
  • 線 <line>
  • 折線 <polyline>
  • 多邊形 <polygon>
  • 路徑 <path>

矩形 <rect>

x:矩形的左側(cè)位置(例如,x="0" 定義矩形到瀏覽器窗口左側(cè)的距離是 0px)
y:矩形的頂端位置(例如氨肌,y="0" 定義矩形到瀏覽器窗口頂端的距離是 0px)
rx 和 ry:使矩形產(chǎn)生圓角。
width 和 height :定義矩形的高度和寬度
style:CSS 屬性
CSS 的 fill:矩形的填充顏色(rgb 值肥隆、顏色名或者十六進(jìn)制值)
CSS 的 stroke-width:矩形邊框的寬度
CSS 的 stroke:矩形邊框的顏色
CSS 的 fill-opacity:填充顏色透明度(合法的范圍是:0 - 1)
CSS 的 stroke-opacity:筆觸顏色的透明度(合法的范圍是:0 - 1)
CSS opacity:元素的透明值 (范圍: 0 到 1)站绪。

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <rect x="50" y="20" rx="20" ry="20" width="200" height="130"
  style="fill:blue; stroke:pink; stroke-width:5; fill-opacity:0.1;
  stroke-opacity:0.9"/>
</svg>

圓形 <circle>

cx和cy:圓點(diǎn)的x和y坐標(biāo)
=> 如果省略cx和cy,圓的中心會(huì)被設(shè)置為(0, 0)
r:圓的半徑

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <circle cx="100" cy="50" r="40" stroke="black"
  stroke-width="2" fill="red"/>
</svg>

橢圓 <ellipse>

CX:橢圓中心的x坐標(biāo)
CY:橢圓中心的y坐標(biāo)
RX:水平半徑
RY:垂直半徑

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <ellipse cx="300" cy="80" rx="100" ry="50"
  style="fill:yellow;stroke:purple;stroke-width:2"/>
</svg>

直線 <line>

x1:在 x 軸定義線條的開(kāi)始
y1:在 y 軸定義線條的開(kāi)始
x2:在 x 軸定義線條的結(jié)束
y2:在 y 軸定義線條的結(jié)束

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <line x1="0" y1="0" x2="200" y2="200"
  style="stroke:rgb(255,0,0);stroke-width:2"/>
</svg>

多邊形 <polygon>

<polygon> 標(biāo)簽用來(lái)創(chuàng)建含有不少于三個(gè)邊的圖形遂鹊。是由直線組成伦忠,其形狀是"封閉"的(所有的線條 連接起來(lái))。
points:多邊形每個(gè)角的 x 和 y 坐標(biāo)
fill-rule:填充方式稿辙,有nonzero和evenodd兩種選項(xiàng)

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <polygon points="100,10 40,180 190,60 10,60 160,180"
  style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" />
</svg>

曲線 <polyline>

用于創(chuàng)建任何只有直線的形狀:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <polyline points="0,40 40,40 40,80 80,80 80,120 120,120 120,160" 
style="fill:white;stroke:red;stroke-width:4" />
</svg>

路徑 <path>

用于定義一個(gè)路徑昆码。
下面的命令可用于路徑數(shù)據(jù):

  • 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

注意:以上所有命令均大小寫(xiě)敏感。大寫(xiě)表示絕對(duì)定位邻储,小寫(xiě)表示相對(duì)定位赋咽。

d屬性定義了路徑描述。

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <path d="M150 0 L75 200 L225 200 Z" />
</svg>

說(shuō)明:它開(kāi)始于位置(150,0)吨娜,到達(dá)位置(75,200)脓匿,然后從那里開(kāi)始到(225,200),最后在(150,0)關(guān)閉路徑宦赠。

Quadratic Bezier 曲線:

<path id="purple" d="M 100 400 q 200 -300 400 0" fill="none" 
stroke="purple" stroke-width="3" />

說(shuō)明: q x1 y1 x y:小寫(xiě)的q陪毡,相對(duì)位置,從當(dāng)前位置畫(huà)曲線至相對(duì)坐標(biāo)(x, y)勾扭,控制點(diǎn)為相對(duì)坐標(biāo)(x1, y1)

文本 <text>

x毡琉,y:文本位置
fill:文本顏色
transform:文字旋轉(zhuǎn) transform="rotate(30 20,40)": rotate(a x,y) 基于點(diǎn)(x,y)進(jìn)行角度a的旋轉(zhuǎn)

<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
xmlns:xlink="http://www.w3.org/1999/xlink">
   <defs>
    <path id="path1" d="M75,20 a1,1 0 0,0 100,0" />
  </defs>
  <text x="10" y="100" style="fill:red;">
    <textPath xlink:href="#path1">I love SVG I love SVG</textPath>
  </text>
</svg>

注意:該<text>可被包含在<a></a>標(biāo)簽以?xún)?nèi)

線性漸變 <linearGradient>

放射性漸變 <radialGradient>

重要屬性 stroke

  • stroke:顏色
  • stroke-width:寬度
  • stroke-linecap:線條端點(diǎn)形狀butt / 無(wú)端點(diǎn)妙色, round / 圓形桅滋,square / 正方形
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <g fill="none" stroke="black" stroke-width="10">
    <path stroke-linecap="butt" d="M5 20 l215 0" />
    <path stroke-linecap="round" d="M5 40 l215 0" />
    <path stroke-linecap="square" d="M5 60 l215 0" />
  </g>
</svg>```
![](http://upload-images.jianshu.io/upload_images/2662224-a2cae78a0d8d18db.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

- stroke-dasharray:用于創(chuàng)建虛線

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<g fill="none" stroke="black" stroke-width="4">
<path stroke-dasharray="5,5" d="M5 20 l215 0" />
<path stroke-dasharray="10,10" d="M5 40 l215 0" />
<path stroke-dasharray="20,10,5,5,5,10" d="M5 60 l215 0" />
</g>
</svg>```


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市身辨,隨后出現(xiàn)的幾起案子丐谋,更是在濱河造成了極大的恐慌,老刑警劉巖煌珊,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件号俐,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡定庵,警方通過(guò)查閱死者的電腦和手機(jī)吏饿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)踪危,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人找岖,你說(shuō)我怎么就攤上這事陨倡。” “怎么了许布?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵兴革,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蜜唾,道長(zhǎng)杂曲,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任袁余,我火速辦了婚禮擎勘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘颖榜。我一直安慰自己棚饵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布掩完。 她就那樣靜靜地躺著噪漾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪且蓬。 梳的紋絲不亂的頭發(fā)上欣硼,一...
    開(kāi)封第一講書(shū)人閱讀 51,562評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音恶阴,去河邊找鬼诈胜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛冯事,可吹牛的內(nèi)容都是我干的焦匈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼桅咆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼括授!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起岩饼,我...
    開(kāi)封第一講書(shū)人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎薛夜,沒(méi)想到半個(gè)月后籍茧,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梯澜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年寞冯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了渴析。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吮龄,死狀恐怖俭茧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情漓帚,我是刑警寧澤母债,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站尝抖,受9級(jí)特大地震影響毡们,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜昧辽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一衙熔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搅荞,春花似錦红氯、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至暇检,卻和暖如春产阱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背块仆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工构蹬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人悔据。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓庄敛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親科汗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子藻烤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 上個(gè)項(xiàng)目用到svg實(shí)現(xiàn)一個(gè)水流的動(dòng)畫(huà),鑒于沒(méi)學(xué)習(xí)幾天头滔,所以懂的也不多怖亭,就此分享一下。首先svg是什么坤检,svg可縮放...
    會(huì)飛的豬l閱讀 4,139評(píng)論 0 5
  • 一:canvas簡(jiǎn)介 1.1什么是canvas兴猩? ①:canvas是HTML5提供的一種新標(biāo)簽 ②:HTML5 ...
    GreenHand1閱讀 4,683評(píng)論 2 32
  • SVG 形狀 SVG 有一些預(yù)定義的形狀元素,可被開(kāi)發(fā)者使用和操作: 矩形 <rect> 圓形 <circle> ...
    葶寳寳閱讀 372評(píng)論 0 4
  • 一.什么是SVG早歇? SVG 指的是可伸縮矢量圖形 (Scalable Vector Graphics),它用來(lái)定義...
    nightZing閱讀 17,053評(píng)論 11 62
  • 一倾芝、什么是SVG讨勤? SVG指可伸縮矢量圖形(Scalable Vector Graphics); SVG用來(lái)定義用...
    清心挽風(fēng)閱讀 1,398評(píng)論 1 3