clipPath
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since â¨2015å¹´7æâ©.
SVG å
ç´ <clipPath> å®ä¹ä¸æ¡åªåè·¯å¾ï¼å¯ä½ä¸ºå
¶ä»å
ç´ ç clip-path 屿§çå¼ã
åªåè·¯å¾éå¶äºå¾å½¢çå¯è§èå´ã仿¦å¿µä¸æ¥è¯´ï¼å¦æå¾å½¢è¶ åºäºå½ååªåè·¯å¾æå å´çåºåï¼é£ä¹è¶ åºé¨åå°ä¸ä¼ç»å¶ã
示ä¾
<svg viewBox="0 0 100 100">
<clipPath id="myClip">
<!--
ååå¤çææä¸è¥¿é½ä¼è¢«è£åªæï¼å æ¤ä¸å¯è§ã
-->
<circle cx="40" cy="35" r="35" />
</clipPath>
<!-- ä½ä¸ºå¼ç¨å
ç´ ï¼è±æåæï¼for referenceï¼çé»è²å¿å½¢ -->
<path
id="heart"
d="M10,30 A20,20,0,0,1,50,30 A20,20,0,0,1,90,30 Q90,60,50,90 Q10,60,10,30 Z" />
<!--
åä¸è¿°é»è²å¿å½¢å½¢ç¶ç¸åç红è²å¿å½¢ï¼åªåè·¯å¾æ¯ä¸é¢å®ä¹çåï¼
红è²å¿å½¢åªæå¨åå
çé¨åå¯è§ã
-->
<use clip-path="url(#myClip)" xlink:href="#heart" fill="red" />
</svg>
/* 妿æµè§å¨æ¯æå ä½å±æ§ rï¼å¯ä»¥å ä¸ç¹ css */
@keyframes openYourHeart {
from {
r: 0;
}
to {
r: 60px;
}
}
#myClip circle {
animation: openYourHeart 15s infinite;
}
仿¦å¿µä¸è®²ï¼åªåè·¯å¾çäºç»å¼ç¨å
ç´ è®¾ç½®äºä¸ä¸ªèªå®ä¹çå¯è§åºåãå æ¤ï¼å®è½ç¶ä¼å½±åä¸ä¸ªå
ç´ çç»å¶ï¼ä½ä¸ä¼å½±åè¿ä¸ªå
ç´ æ¬èº«çå ä½å½¢ç¶ï¼æ¯å¦è¢«åªåå
ç´ ï¼éè¿ clip-path 屿§å¼ç¨äº <clipPath> çå
ç´ åå
¶åå
ç´ ï¼çå
å´çåæ²¡æè¢«åªåæ¶ç¸åã
é»è®¤æ
åµä¸ï¼pointer-events ä¸ä¼å¨è¢«åªåæçåºåï¼ä¸å¯è§çåºåï¼å
触åã举个ä¾åï¼å¦æä¸ä¸ªåå¾ä¸º 10 çå形被åªåæåå¾ä¸º 5 çåå½¢ï¼é£ä¹è¿ä¸ªåå¨åå¾ä¸º 5 以å¤çåºåä¸ä¼æ¶å°âclickâäºä»¶ã
屿§
clipPathUnits-
为
<clipPath>å ç´ çå 容å®ä¹åæ ç³»ã Value type:userSpaceOnUse|objectBoundingBox; Default value:userSpaceOnUse; Animatable: yes
使ç¨ä¸ä¸æ
| ç±»å« | æ |
|---|---|
| å 许çå 容 | ä»»ææ°éãä»»æé¡ºåºçä¸åå
ç´ ï¼ å¨ç»å ç´ æè¿°æ§å ç´ å½¢ç¶å ç´ <text>ã<use> |
è§è
| Specification |
|---|
| CSS Masking Module Level 1 > # ClipPathElement > |
æµè§å¨å ¼å®¹æ§
ç¸å ³å 容
- Other clipping and masking SVG elements:
<mask> - Some CSS properties:
clip-path,pointer-events