åªååé®ç½©
æ¦é¤å·²ç»å建çå ç´ çé¨åå å®¹ï¼æåçèµ·æ¥æç¹çç¾ã使¯å¦æä½ æç®å¨ SVG ä¸å建ä¸ä¸ªååå½¢ï¼ä½ å°å¾å¿«åç°ä¸é¢ç屿§çä½ç¨äºã
-
Clipping ç¨æ¥ç§»é¤å¨å«å¤å®ä¹çå ç´ çé¨åå 容ãå¨è¿éï¼ä»»ä½åéæææé½æ¯ä¸è¡çãå®åªè½è¦ä¹æ¾ç¤ºè¦ä¹ä¸æ¾ç¤ºã
-
Masking å 许使ç¨éæåº¦åç°åº¦å¼é®ç½©è®¡ç®å¾ç软边ç¼ã
å建åªå
æä»¬å¨ä¸ä¸ªåå½¢çåºç¡ä¸å建ä¸é¢æå°çååå½¢ï¼
<svg
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<clipPath id="cut-off-bottom">
<rect x="0" y="0" width="200" height="100" />
</clipPath>
</defs>
<circle cx="100" cy="100" r="100" clip-path="url(#cut-off-bottom)" />
</svg>
å¨ (100,100) å建ä¸ä¸ªåå½¢ï¼å徿¯ 100ã屿§ clip-path å¼ç¨äºä¸ä¸ªå¸¦å个 rect å
ç´ ç <clipPath> å
ç´ ãå®å
é¨çè¿ä¸ªç©å½¢å°æç»å¸çä¸åé¨åæ¶é»ã注æï¼clipPath å
ç´ ç»å¸¸æ¾å¨ä¸ä¸ª defs å
ç´ å
ã
ç¶èï¼è¯¥ rect ä¸ä¼è¢«ç»å¶ãå®çè±¡ç´ æ°æ®å°ç¨æ¥ç¡®å®ï¼åå½¢çåªäºåç´ éè¦æç»åç°åºæ¥ãå 为ç©å½¢åªè¦çäºåå½¢çä¸åé¨åï¼æä»¥ä¸åé¨åå°æ¶å¤±äºï¼
ç°å¨æä»¬å·²ç»æäºä¸ä¸ªååå½¢ï¼ä¸ç¨å¤ç弧形路å¾å
ç´ ã对äºè¿ä¸ªåªåï¼clipPathå
é¨çæ¯ä¸ªè·¯å¾é½ä¼è¢«æ£æ¥å°ãä¸å®çæè¾¹å±æ§ä¸èµ·è¢«ä¼°å¼ãåå½¢ãç¶åç®æ çä½äº clipPath å
容çç»æçéæåº¦åºåçæ¯ä¸åé½ä¸ä¼åç°ãé¢è²ãä¸éæåº¦é½æ²¡æè¿ç§ææï¼å 为å®ä»¬ä¸è½è®©ä¸é¨åå½»åºæ¶å¤±ã
é®ç½©
é®ç½©çæææä»¤äººå°è±¡æ·±å»çæ¯è¡¨ç°ä¸ºä¸ä¸ªæ¸åãå¦æä½ æ³è¦è®©ä¸ä¸ªå ç´ æ·¡åºï¼ä½ å¯ä»¥å©ç¨é®ç½©ææå®ç°è¿ä¸ç¹ã
<svg
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<linearGradient id="Gradient">
<stop offset="0" stop-color="white" stop-opacity="0" />
<stop offset="1" stop-color="white" stop-opacity="1" />
</linearGradient>
<mask id="Mask">
<rect x="0" y="0" width="200" height="200" fill="url(#Gradient)" />
</mask>
</defs>
<rect x="0" y="0" width="200" height="200" fill="green" />
<rect x="0" y="0" width="200" height="200" fill="red" mask="url(#Mask)" />
</svg>
ä½ çå°æä¸ä¸ªç»¿è²å¡«å
çç©å½¢å¨åºå±ï¼ä¸ä¸ªçº¢è²å¡«å
çç©å½¢å¨ä¸å±ãåè
æä¸ä¸ªmask屿§æåä¸ä¸ªmaskå
ç´ ãmaskå
ç´ çå
容æ¯ä¸ä¸ªåä¸çrectå
ç´ ï¼å®å¡«å
äºä¸ä¸ªéæå°ç½è²çæ¸åãä½ä¸ºçº¢è²ç©å½¢ç»§æ¿markå
容çalphaå¼ï¼éæåº¦ï¼çç»æï¼æä»¬çå°ä¸ä¸ªä»ç»¿è²å°çº¢è²æ¸åçè¾åºï¼
ç¨ opacity å®ä¹éæåº¦
æä¸ä¸ªç®åæ¹æ³å¯ä»¥ç¨æ¥ä¸ºæ´ä¸ªå
ç´ è®¾ç½®éæåº¦ãå®å°±æ¯opacity屿§ï¼
<rect x="0" y="0" width="100" height="100" opacity=".5" />
ä¸é¢çç©å½¢å°ç»å¶ä¸ºåéæãå¡«å
åæè¾¹è¿æä¸¤ä¸ªå±æ§æ¯fill-opacityåstroke-opacityï¼åå«ç¨æ¥æ§å¶å¡«å
åæè¾¹çä¸éæåº¦ãéè¦æ³¨æçæ¯æè¾¹å°ç»å¶å¨å¡«å
çä¸é¢ãå æ¤ï¼å¦æä½ å¨ä¸ä¸ªå
ç´ ä¸è®¾ç½®äºæè¾¹éæåº¦ï¼ä½å®åæ¶è®¾æå¡«å
ï¼åæè¾¹çä¸ååºç¨å¡«å
è²ï¼å¦ä¸åå°åºç¨èæ¯è²ã
<svg
width="200"
height="200"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink">
<rect x="0" y="0" width="200" height="200" fill="blue" />
<circle
cx="100"
cy="100"
r="50"
stroke="yellow"
stroke-width="40"
stroke-opacity=".5"
fill="red" />
</svg>
ä½ çå°è¿ä¸ªç¤ºä¾ï¼çº¢è²çåå½¢å¨èè²çèæ¯ä¸ï¼é»è²æè¾¹è®¾ç½®ä¸º 50% ä¸éæåº¦ï¼è¾¾å°åè²æè¾¹çææã
å©ç¨å¹¿ä¸ºäººç¥ç CSS ææ¯
Web å¼åå·¥å
·ç®±ä¸æä¸ä¸ªå¾æç¨çå·¥å
·æ¯ display:noneãå æ¤ï¼å³å®å°æ¤ CSS 屿§ä¸ CSS 2 ä¸å®ä¹ç visibility å clip 屿§ä¸èµ·çº³å
¥ SVG å¹¶ä¸å¥æªãå¯¹äºæ¢å¤ä»¥å设置ç display:noneï¼éè¦çæ¯ç¥éææç SVG å
ç´ çåå§ display å¼é½æ¯ inlineã