溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

HTML5中筆畫與填充的方法

發(fā)布時間:2022-03-01 15:23:32 來源:億速云 閱讀:140 作者:iii 欄目:web開發(fā)

這篇文章主要講解了“HTML5中筆畫與填充的方法”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“HTML5中筆畫與填充的方法”吧!

填充色 - fill屬性

這個屬性使用設(shè)置的顏色填充圖形內(nèi)部,使用很簡單,直接把顏色值賦給這個屬性就可以了??蠢樱?/p>

復(fù)制代碼 代碼如下:

<rect x="10" y="10" width="100" height="100" stroke="blue" fill="red"

fill-opacity="0.5" stroke-opacity="0.8"/>

上面例子中畫了一個紅色藍(lán)邊的矩形。注意幾點:

1. 如果不提供fill屬性,則默認(rèn)會使用黑色填充,如果要取消填充,需要設(shè)置成none。

2. 可以設(shè)置填充的透明度,就是fill-opacity,值的范圍是0到1。

3. 稍微復(fù)雜一點的是fill-rule屬性。這個屬性定義了判斷點是不是屬于填充范圍的算法;除了inherit這個值外,還有兩個取值:

prop-value">nonzero:這個值采用的算法是:從需要判定的點向任意方向發(fā)射線,然后計算圖形與線段交點的處的走向;計算結(jié)果從0開始,每有一個交點處的線段是從左到右的,就加1;每有一個交點處的線段是從右到左的,就減1;這樣計算完所有交點后,如果這個計算的結(jié)果不等于0,則該點在圖形內(nèi),需要填充;如果該值等于0,則在圖形外,不需要填充??聪旅娴氖纠?/p>

evenodd:這個值采用的算法是:從需要判定的點向任意方向發(fā)射線,然后計算圖形與線段交點的個數(shù),個數(shù)為奇數(shù)則改點在圖形內(nèi),需要填充;個數(shù)為偶數(shù)則點在圖形外,不需要填充??聪聢D的示例:

邊框色 - stroke屬性

上面的例子中已經(jīng)用到了stroke屬性,這個屬性使用設(shè)置的值畫圖形的邊框,使用起來也很直接,把顏色值賦給它就可以了。注意:

1. 如果不提供stroke屬性,則默認(rèn)不繪制圖形邊框。

2. 可以設(shè)置邊的透明度,就是stroke-opacity,值的范圍是0到1。

實際上,邊的情況比圖形內(nèi)部稍微復(fù)雜一點,因為邊除了顏色,還有"形狀"需要定義。

線的端點 - stroke-linecap屬性

這個屬性定義了線段端點的風(fēng)格,這個屬性可以使用butt,square,round三個值??蠢樱?/p>

復(fù)制代碼 代碼如下:

<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)格線端點的線,

從左面的圖中我們可以很容易看出3中風(fēng)格的不同。

線的連接 - stroke-linejoin屬性

這個屬性定義了線段連接處的風(fēng)格,這個屬性可以使用miter,round,bevel三個值??蠢樱?/p>

復(fù)制代碼 代碼如下:

<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è)置線段采用何種虛實線??蠢樱?/p>

復(fù)制代碼 代碼如下:

<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。其他的大多都差不多。簡單看個例子:

復(fù)制代碼 代碼如下:

#MyRect:hover {

stroke: black;

fill: blue;

}

感謝各位的閱讀,以上就是“HTML5中筆畫與填充的方法”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對HTML5中筆畫與填充的方法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI