首頁  >  文章  >  web前端  >  HTML5中SVG 2D筆畫與填充的詳細介紹

HTML5中SVG 2D筆畫與填充的詳細介紹

黄舟
黄舟原創
2017-03-03 16:56:501983瀏覽

          轉載請註明來源:HTML5中SVG 2D筆畫與填色

填滿色 - fill屬性

# 這個屬性使用設定的顏色填滿圖形內部,使用很簡單,直接把顏色值賦給這個屬性就可以了。看範例:

<rect x="10" y="10" width="100" height="100" stroke="blue" fill="red"  fill-opacity="0.5" stroke-opacity="0.8"/>

 

上面範例中畫了一個紅色藍邊的長方形。注意幾點:

# 1. 如果不提​​供fill屬性,則預設會使用黑色填充,如果要取消填充,則需要設定成none。

2. 可以設定填滿的透明度,就是fill-opacity,值的範圍是0到1。

 

# 邊框色 - stroke屬性

# 上面的範例中已經用到了stroke屬性,這個屬性使用設定的值畫圖形的邊框,使用起來也很直接,把顏色值賦給它就可以了。注意:

1. 如果不提​​供stroke屬性,則預設不繪製圖形邊框。

2. 可以設定邊的透明度,就是stroke-opacity,值的範圍是0到1。


實際上,邊的情況比圖形內部稍微複雜一點,因為邊除了顏色,還有"形狀"需要定義。

 

# 線的端點 - stroke-linecap屬性

# 這個屬性定義了線段端點的風格,這個屬性可以使用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條使用不同風格線端點的線,從左面的圖中我們可以很容易看出3中風格的不同。

#  

# 線的連結 - stroke-linejoin屬性

# 這個屬性定義了線段連接處的風格,這個屬性可以使用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中風格的不同。

 

# 線的虛實 - stroke-dasharray屬性

# 這個屬性可以設定線段採用何種虛實線。看範例:

<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>


#  

这个属性是设置一些列数字,不过这些数字必须是逗号隔开的属性中当然可以包含空格,但是空格不作为分隔符。每个数字定义了实线段的长度,分别是按照绘制、不绘制这个顺序循环下去。所以左面的例子中绘制的线是画5单位的实线,留5单位的空格,再画5单位的实线...这样一直下去。除了这些常用的属性,还有下列属性可以设置:

stroke-miterlimit:这个和canvas中的一样,它处理什么时候画和不画线连接处的miter效果。

stroke-dashoffset:这个属性设置开始画虚线的位置。

 

使用CSS展示数据

HTML5强化了p+CSS的思想,所以展示数据的部分还可以交给CSS处理。与普通HTML元素相比,只不过是 background-color和border换成了fill和stroke。其他的大多都差不多。简单看个例子:

#MyRect:hover {  
   stroke: black;  
   fill: blue;  
 }

是不是很熟悉,就是这么简单的。

以上就是HTML5中SVG 2D笔画与填充的详细介绍的内容,更多相关内容请关注PHP中文网(www.php.cn)!


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn