自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一篇文章帶你了解SVG fill 屬性

開發(fā) 前端
SVG形狀的fill定義了其輪廓內(nèi)的形狀的顏色。換句話說,SVG形狀的表面。填充是您可以為任何SVG形狀設(shè)置的基本SVG CSS屬性之一。

[[380901]]

SVG形狀的fill定義了其輪廓內(nèi)的形狀的顏色。換句話說,SVG形狀的表面。填充是您可以為任何SVG形狀設(shè)置的基本SVG CSS屬性之一。

一、Fill

SVG形狀的填充是形狀輪廓內(nèi)的填充。

定義了一個使用藍色(#0000ff)填充顏色但沒有描邊顏色的圓。

  1. <!DOCTYPE html> 
  2. <html> 
  3.   <body style="background-color: aqua;"
  4.     <title>項目</title> 
  5.     <svg width="500" height="100"
  6.       <circle cx="50" cy="50" r="25" style="stroke: none; fill: #FF0000;" /> 
  7.     </svg> 
  8.   </body> 
  9. </html> 

運行效果:

二、填充和描邊示例

可以將SVG筆觸和填充顏色組合為SVG形狀。

示例

使用較深的藍色(#000066)描邊顏色和較淺的藍色(#3333ff)填充顏色定義圓。

  1. <!DOCTYPE html> 
  2. <html> 
  3.   <body style="background-color: aqua;"
  4.     <title>項目</title> 
  5.     <svg width="500" height="100"
  6.       <circle cx="50" cy="50" r="50" style="stroke: #000066; fill: #FF0000;" /> 
  7.     </svg> 
  8.   </body> 
  9. </html> 

運行效果:

1. fill-opacity

SVG CSS屬性 fill-opacity 用于設(shè)置形狀的填充顏色的不透明度。fill-opacity 使用介于0和1之間的數(shù)值。值越接近0,填充越透明。值越接近1,填充越不透明。默認fill-opacity值為1,這意味著填充顏色是完全不透明的。

這是一個SVG填充不透明度 fill-opacity示例,其中包含兩個具有不同(fill-opacity)的圓:

示例

  1. <svg width="500" height="120"
  2.       <text x="22" y="40">World Behindeda Look</text> 
  3.  
  4.       <circle cx="50" cy="50" r="25" style="stroke: none; fill: #0000ff; 
  5.                  fill-opacity: 0.3;  "> 
  6.         </path> 
  7.       <circle cx="120" cy="50" r="25" style="stroke: none; fill: #0000ff; 
  8.                  fill-opacity: 0.7;  "> 
  9.        </path> 
  10. </svg> 

運行效果:

請注意

右圓圈后面的文本比左圓圈后面的文本更不可見。那是因為右圓fill-opacity比左圓高。

2. fill-rule

fill-rule決定的復(fù)雜形狀的填充方式。fill-rule可以采用兩個不同的值 。這些值是:

2.1 nonzero

通常,這兩個值是確定形狀內(nèi)部和外部形狀的規(guī)則。僅內(nèi)部填充,對于一個圓來說,這很簡單,但是對于更復(fù)雜的形狀,這并不是那么容易。

示例

  1. <svg width="500" height="120"
  2. <path d="M50,20 l40,40 l-40,40 l-40,-40 l40,-40 
  3.          M50,40 l20,20 l-20,20 l-20,-20 l20,-20" 
  4.          style="stroke: #000000; 
  5.          fill: #6666ff; 
  6.          fill-rule: nonzero; 
  7.       "> 
  8.   </path> 
  9.  
  10. <path d="M150,20 l40,40 l-40,40 l-40,-40 l40,-40 
  11.          M150,40 l-20,20 l20,20 l20,-20 l-20,-20" 
  12.          style="stroke: #000000; 
  13.          fill: #6666ff; 
  14.          fill-rule: nonzero;"></path> 
  15. </svg> 

代碼解析:

兩個路徑示例各有8條線,每條線都以菱形繪制,其中較大的菱形包含較小的菱形。

在左側(cè)路徑中,內(nèi)部菱形是從左向右(順時針)繪制的。右邊的路徑中,內(nèi)部菱形從右到左(逆時針)繪制。

這是使用fill-rule:non-zero繪制時的結(jié)果圖像。

2.2 evenodd

這是相同的路徑示例,使用fill-rule:evenodd。

示例

  1. <svg width="500" height="120"
  2. <path d="M50,20 l40,40 l-40,40 l-40,-40 l40,-40 
  3.          M50,40 l20,20 l-20,20 l-20,-20 l20,-20" 
  4.       style="stroke: #000000; 
  5.       fill: #6666ff; 
  6.       fill-rule: evenodd;" ></path> 
  7.  
  8. <path d="M150,20 l-40,40 l40,40 l40,-40 l-40,-40 
  9.          M150,40 l-20,20 l20,20 l20,-20 l-20,-20" 
  10.       style="stroke: #000000; 
  11.       fill: #6666ff; 
  12.       fill-rule: evenodd;" ></path> 
  13. </svg> 

運行后圖像效果:

注意:

evenodd字面意思是“奇偶”。

按該規(guī)則:

要判斷一個點是否在圖形內(nèi),從該點作任意方向的一條射線,然后檢測射線與圖形路徑的交點的數(shù)量。在任意方向上從點到無窮遠繪制一條線(射線)。每當路徑穿過射線時,都增加一個計數(shù)器。如果總數(shù)是偶數(shù),則該點在外面。如果總計數(shù)為奇數(shù),則該點位于形狀內(nèi)部。

三、總結(jié)

本文基于Html基礎(chǔ),講解了有關(guān)SVG中的fill屬性,對于fill 填充屬性中常見的屬性,fill-opacity,fill-rule,描邊屬性。通過案例的分析說明進行了詳細講解,通過豐富的案例運行效果圖了能夠直觀的看到結(jié)果,能夠幫助讀者更好的理解。

代碼很簡單,希望能夠幫助你學(xué)習(xí)。

 本文轉(zhuǎn)載自微信公眾號「前端進階學(xué)習(xí)交流」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系前端進階學(xué)習(xí)交流公眾號。

 

責(zé)任編輯:武曉燕 來源: 前端進階學(xué)習(xí)交流
相關(guān)推薦

2021-02-23 06:51:16

SVGstrokeHtml基礎(chǔ)

2020-12-08 08:09:49

SVG圖標Web

2021-02-26 20:01:57

SVG濾鏡元素

2020-12-23 08:12:08

javascriptSVG腳本SVG元素

2021-01-01 09:18:48

SVG圖像元素

2020-12-29 09:39:38

元素屬性定位

2021-03-26 09:57:51

SVGHtml基礎(chǔ)SVG圖像

2022-05-13 16:21:38

javascrip腳本SVG

2021-01-04 10:14:42

SVG標簽元素

2020-12-25 09:42:51

SVGtspanSVG基礎(chǔ)

2020-12-15 08:15:34

SVG元素路徑

2023-07-30 15:18:54

JavaScript屬性

2020-11-10 10:48:10

JavaScript屬性對象

2020-12-04 08:40:29

SVG動畫元素

2020-12-11 08:39:14

SVG代碼剪切

2023-05-12 08:19:12

Netty程序框架

2021-06-30 00:20:12

Hangfire.NET平臺

2023-05-08 08:21:15

JavaNIO編程

2021-01-26 23:46:32

JavaScript數(shù)據(jù)結(jié)構(gòu)前端

2021-03-09 14:04:01

JavaScriptCookie數(shù)據(jù)
點贊
收藏

51CTO技術(shù)棧公眾號