fill-rule
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨2020å¹´3æâ©.
fill-rule æ¯ä¸ä¸ªè¡¨ç°å±æ§ï¼å®å®ä¹äºç¨æ¥ç¡®å®ä¸ä¸ªå¤è¾¹å½¢å
é¨åºåçç®æ³ã
夿³¨ï¼ä½ä¸ºä¸ä¸ªè¡¨ç°å±æ§ï¼fill-rule å¯ä»¥è¢«ç¨äº CSSã
ä½ä¸ºä¸ä¸ªè¡¨ç°å±æ§ï¼å®å¯ä»¥è¢«åºç¨äºä»»ä½å ç´ ï¼ä½åªä¼å¨ä»¥ä¸å ç´ ä¸ææï¼
å¦ä½å¤æä¸ä¸ªè·¯å¾ç»æçå¤è¾¹å½¢çå é¨åºåï¼ä»èç»å®ä¸è²ï¼å¯¹äºä¸ä¸ªç®åçãæ²¡æäº¤éçè·¯å¾æ¥è¯´ï¼æ¯å¾æ¾ç¶çï¼ç¶èï¼å¯¹äºä¸ä¸ªæ´ä¸ºå¤æçè·¯å¾ï¼æ¯å¦ä¸æ¡ä¸èªèº«ç¸äº¤çè·¯å¾ï¼æè æ¯è¿æ¡è·¯å¾ä¸çå ¶ä¸ä¸æ®µå°å¦ä¸æ®µå å´çï¼è¦è§£éä»ä¹æ¯âå é¨âï¼å°±ä¸åè¿ä¹æ¾ç¶äºã
示ä¾
<svg viewBox="-10 -10 220 120" xmlns="http://www.w3.org/2000/svg">
<!-- fill-rule çé»è®¤å¼ -->
<polygon
fill-rule="nonzero"
stroke="red"
points="50,0 21,90 98,35 2,35 79,90" />
<!--
ä»è¿ä¸ªå½¢ç¶çä¸å¿å°æ ç©·è¿å¤æä¸¤æ¡è·¯å¾æ®µï¼çº¢è²é¨åï¼ï¼å æ¤
该åºå被认为æ¯å½¢ç¶å¤é¨ï¼å¹¶ä¸æ²¡æè¢«å¡«å
ã
-->
<polygon
fill-rule="evenodd"
stroke="red"
points="150,0 121,90 198,35 102,35 179,90" />
</svg>
使ç¨è¯´æ
| ç±»å« | å¤è§å±æ§ |
|---|---|
| å¼ | nonzero | evenodd |
| é»è®¤å¼ | nonzero |
| å¯åæ§ | Yes |
fill-rule 屿§ä¸ºå¦ä½ç¡®å®ä¸ä¸ªå½¢ç¶çå
é¨ï¼å³å¯ä»¥è¢«å¡«å
çåºåï¼æä¾äºä¸¤ä¸ªå¯éå¼ï¼
nonzero
è¿ä¸ªå¼ç¡®å®äºæç¹å±äºè¯¥å½¢ç¶çâå é¨âè¿æ¯âå¤é¨âï¼ä»è¯¥ç¹åä»»ææ¹åçæ éè¿å¤ç»å¶å°çº¿ï¼ç¶åæ£æµå½¢ç¶ä¸å°çº¿ç¸äº¤çä½ç½®ãä» 0 å¼å§ç»è®¡ï¼è·¯å¾ä¸æ¯ä¸æ¡ä»å·¦å°å³ï¼é¡ºæ¶éï¼è·¨è¿å°çº¿ç线段é½ä¼è®©ç»æå 1ï¼æ¯æ¡ä»å³åå·¦ï¼éæ¶éï¼è·¨è¿å°çº¿ç线段é½ä¼è®©ç»æå 1ãå½ç»è®¡ç»æåï¼å¦æç»æä¸º 0ï¼åç¹å¨å¤é¨ï¼å¦æç»æä¸ä¸º 0ï¼åç¹å¨å é¨ã
Example
<svg viewBox="-10 -10 320 120" xmlns="http://www.w3.org/2000/svg">
<!-- nonzero å¡«å
è§å被ç¨äºè·¯å¾æ®µä¼ç¸äº¤çå½¢ç¶ä¸çææ -->
<polygon
fill-rule="nonzero"
stroke="red"
points="50,0 21,90 98,35 2,35 79,90" />
<!--
nonzero å¡«å
è§å被ç¨äºä¸ä¸ªå½¢ç¶å¨å¦ä¸å½¢ç¶å
é¨çææ
è¿ä¸¤ä¸ªæ£æ¹å½¢çè·¯å¾æ®µæ¹åç¸åï¼é½æ¯é¡ºæ¶éï¼
-->
<path
fill-rule="nonzero"
stroke="red"
d="M110,0 h90 v90 h-90 z
M130,20 h50 v50 h-50 z" />
<!--
è¿ä¸ªä¾åä¸ç¬¬äºä¸ªä¾åå ä¹ç¸åï¼å¯ä¸çåºå«æ¯ï¼ä¸¤ä¸ªå½¢ç¶çè·¯å¾æ®µæ¹åç¸å
å¤é¢çæ£æ¹å½¢æ¯é¡ºæ¶éï¼éé¢çæ£æ¹å½¢åæ¯éæ¶é
-->
<path
fill-rule="nonzero"
stroke="red"
d="M210,0 h90 v90 h-90 z
M230,20 v50 h50 v-50 z" />
</svg>
evenodd
è¿ä¸ªå¼ç¨ç¡®å®äºæç¹å±äºè¯¥å½¢ç¶çâå é¨âè¿æ¯âå¤é¨âï¼ä»è¯¥ç¹åä»»ææ¹åæ éè¿å¤ç»å¶å°çº¿ï¼å¹¶ç»è®¡è¿ä¸ªå½¢ç¶ææçè·¯å¾æ®µä¸ï¼ä¸å°çº¿ç¸äº¤çè·¯å¾æ®µçæ°éã妿æå¥æ°ä¸ªè·¯å¾æ®µä¸å°çº¿ç¸äº¤ï¼åç¹å¨å é¨ï¼å¦ææå¶æ°ä¸ªï¼åç¹å¨å¤é¨ã
Example
<svg viewBox="-10 -10 320 120" xmlns="http://www.w3.org/2000/svg">
<!-- evenodd å¡«å
è§å被ç¨äºè·¯å¾æ®µä¼ç¸äº¤çå½¢ç¶ä¸çææ -->
<polygon
fill-rule="evenodd"
stroke="red"
points="50,0 21,90 98,35 2,35 79,90" />
<!--
evenodd å¡«å
è§å被ç¨äºä¸ä¸ªå½¢ç¶å¨å¦ä¸å½¢ç¶å
é¨çææ
è¿ä¸¤ä¸ªæ£æ¹å½¢çè·¯å¾æ®µæ¹åç¸åï¼é½æ¯é¡ºæ¶éï¼
-->
<path
fill-rule="evenodd"
stroke="red"
d="M110,0 h90 v90 h-90 z
M130,20 h50 v50 h-50 z" />
<!--
è¿ä¸ªä¾åä¸ç¬¬äºä¸ªä¾åå ä¹ç¸åï¼å¯ä¸çåºå«æ¯ï¼ä¸¤ä¸ªå½¢ç¶çè·¯å¾æ®µæ¹åç¸å
å¤é¢çæ£æ¹å½¢æ¯é¡ºæ¶éï¼éé¢çæ£æ¹å½¢åæ¯éæ¶é
-->
<path
fill-rule="evenodd"
stroke="red"
d="M210,0 h90 v90 h-90 z
M230,20 v50 h50 v-50 z" />
</svg>
è§è
| Specification |
|---|
| Scalable Vector Graphics (SVG) 2 > # WindingRule > |