HTML5之SVG 2D入門4—筆畫與填充_HTML5教程
推薦:HTML5之SVG 2D入門12—SVG DOM及DOM操作介紹由于SVG是html的元素,所以支持普通的DOM操作,又由于SVG本質(zhì)上是xml文檔,所以也有一種特殊的DOM操作,大多稱之為SVG DOM,本文將詳細(xì)介紹下SVG中的DOM操作,感興趣的朋友可不要錯過哦
前面我們重點(diǎn)都在總結(jié)各類形狀,文本和圖片,接下來,我們還是和討論canvas一樣,總結(jié)一下顏色處理,也就是填充和邊框效果;你會發(fā)現(xiàn)這里的內(nèi)容與canvas基本上是一致的。這些屬性既可以以屬性的形式寫在元素中,也可以以CSS的形式保存(這是與canvas不一樣的地方)。
填充色 - fill屬性
這個屬性使用設(shè)置的顏色填充圖形內(nèi)部,使用很簡單,直接把顏色值賦給這個屬性就可以了�?蠢樱�
<rect x="10" y="10" width="100" height="100" stroke="blue" fill="red"
fill-opacity="0.5" stroke-opacity="0.8"/>
上面例子中畫了一個紅色藍(lán)邊的矩形。注意幾點(diǎn):
1. 如果不提供fill屬性,則默認(rèn)會使用黑色填充,如果要取消填充,需要設(shè)置成none。
2. 可以設(shè)置填充的透明度,就是fill-opacity,值的范圍是0到1。
3. 稍微復(fù)雜一點(diǎn)的是fill-rule屬性。這個屬性定義了判斷點(diǎn)是不是屬于填充范圍的算法;除了inherit這個值外,還有兩個取值: evenodd:這個值采用的算法是:從需要判定的點(diǎn)向任意方向發(fā)射線,然后計算圖形與線段交點(diǎn)的個數(shù),個數(shù)為奇數(shù)則改點(diǎn)在圖形內(nèi),需要填充;個數(shù)為偶數(shù)則點(diǎn)在圖形外,不需要填充。看下圖的示例:

邊框色 - stroke屬性
上面的例子中已經(jīng)用到了stroke屬性,這個屬性使用設(shè)置的值畫圖形的邊框,使用起來也很直接,把顏色值賦給它就可以了。注意:
1. 如果不提供stroke屬性,則默認(rèn)不繪制圖形邊框。
2. 可以設(shè)置邊的透明度,就是stroke-opacity,值的范圍是0到1。
實際上,邊的情況比圖形內(nèi)部稍微復(fù)雜一點(diǎn),因為邊除了顏色,還有"形狀"需要定義。
線的端點(diǎn) - stroke-linecap屬性
這個屬性定義了線段端點(diǎn)的風(fēng)格,這個屬性可以使用butt,square,round三個值�?蠢樱�
<svg width="160" height="140">
<line x1="40" x2="120" y1="20" y2="20" stroke="black" stroke-width="20" stroke-linecap="butt"/>
<line x1="40" x2="120" y1="60" y2="60" stroke="black" stroke-width="20" stroke-linecap="square"/>
<line x1="40" x2="120" y1="100" y2="100" stroke="black" stroke-width="20" stroke-linecap="round"/>
</svg>

這段代碼繪制了3條使用不同風(fēng)格線端點(diǎn)的線,
從左面的圖中我們可以很容易看出3中風(fēng)格的不同。
線的連接 - stroke-linejoin屬性
這個屬性定義了線段連接處的風(fēng)格,這個屬性可以使用miter,round,bevel三個值�?蠢樱�
<svg width="160" height="280">
<polyline points="40 60 80 20 120 60" stroke="black" stroke-width="20"
stroke-linecap="butt" fill="transparent" stroke-linejoin="miter"/>
<polyline points="40 140 80 100 120 140" stroke="black" stroke-width="20"
stroke-linecap="round" fill="transparent" stroke-linejoin="round"/>
<polyline points="40 220 80 180 120 220" stroke="black" stroke-width="20"
stroke-linecap="square" fill="transparent" stroke-linejoin="bevel"/>
</svg>
從左面的圖中我們很容易看到3中風(fēng)格的不同。
線的虛實 - stroke-dasharray屬性
這個屬性可以設(shè)置線段采用何種虛實線�?蠢樱�
<svg width="200" height="150">
<path d="M 10 75 Q 50 10 100 75 T 190 75" stroke="black"
stroke-linecap="round" stroke-dasharray="5,10,5" fill="none"/>
<path d="M 10 75 L 190 75" stroke="red"
stroke-linecap="round" stroke-width="1" stroke-dasharray="5,5" fill="none"/>
</svg>

這個屬性是設(shè)置一些列數(shù)字,不過這些數(shù)字必須是逗號隔開的。
屬性中當(dāng)然可以包含空格,但是空格不作為分隔符。每個數(shù)字
定義了實線段的長度,分別是按照繪制、不繪制這個順序循環(huán)下去。
所以左面的例子中繪制的線是畫5單位的實線,留5單位的空格,
再畫5單位的實線...這樣一直下去。
除了這些常用的屬性,還有下列屬性可以設(shè)置:
stroke-miterlimit:這個和canvas中的一樣,它處理什么時候畫和不畫線連接處的miter效果。
stroke-dashoffset:這個屬性設(shè)置開始畫虛線的位置。
使用CSS展示數(shù)據(jù)
HTML5強(qiáng)化了DIV+CSS的思想,所以展示數(shù)據(jù)的部分還可以交給CSS處理。與普通HTML元素相比,只不過是 background-color和border換成了fill和stroke。其他的大多都差不多。簡單看個例子:
#MyRect:hover {
stroke: black;
fill: blue;
}
是不是很熟悉,就是這么簡單的。
實用參考:
腳本索引:http://msdn.microsoft.com/zh-cn/library/ff971910(v=vs.85).aspx
開發(fā)中心:https://developer.mozilla.org/en/SVG
熱門參考:http://www.chinasvg.com/
官方文檔:http://www.w3.org/TR/SVG11/
分享:HTML5之WebGL 3D概述(下)—借助類庫開發(fā)及框架介紹前面我們看到了使用原生的WebGL API開發(fā)是多么的累,只因如此大量的WebGL框架被開發(fā)出來,這些框架不同程度的封裝了創(chuàng)建3D場景的各種要素你可以快速創(chuàng)建需要的3D場景,感興趣的朋友可以了解下,或許本文對你有所幫助
- 只要五步 就可以用HTML5/CSS3快速制作便簽貼特效(圖)
- 網(wǎng)易微博Web App用HTML5開發(fā)的過程介紹
- HTML5 對各個標(biāo)簽的定義與規(guī)定:body的介紹
- 關(guān)于HTML5的安全問題開發(fā)人員需要牢記的
- 關(guān)于HTML5的22個初級技巧(圖文教程)
- 開發(fā)人員所需要知道的HTML5性能分析面面觀
- HTML5 Web Database 數(shù)據(jù)庫的SQL語句的使用方法
- HTML5實踐-圖片設(shè)置成灰度圖
- HTML5安全介紹之內(nèi)容安全策略(CSP)簡介
- HTML5 Web存儲方式的localStorage和sessionStorage進(jìn)行數(shù)據(jù)本地存儲案例應(yīng)用
- Bootstrap 學(xué)習(xí)分享
- input元素的url類型和email類型簡介
HTML5教程Rss訂閱Div+Css教程搜索
HTML5教程推薦
- 幾個解決兼容IE6\7\8不支持html5標(biāo)簽的幾個方法
- html5的新玩法——語音搜索
- html5 canvas里繪制橢圓并保持線條粗細(xì)均勻的技巧
- HTML5 Canvas像素處理使用接口介紹
- html5聲頻audio和視頻video等新特性詳細(xì)說明
- html5 canvas-2.用canvas制作一個猜字母的小游戲
- 使用HTML5的鏈接預(yù)取功能(link prefetching)給網(wǎng)站提速
- HTML5中實現(xiàn)拖放效果無須借助javascript
- html5 svg 中元素點(diǎn)擊事件添加方法
- HTML5之SVG 2D入門7—SVG元素的重用與引用
- 相關(guān)鏈接:
- 教程說明:
HTML5教程-HTML5之SVG 2D入門4—筆畫與填充
。