maskUnits
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2020å¹´1æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
maskUnits 屿§ã¯ã <mask> è¦ç´ ã®å¹¾ä½ããããã£ã«ä½¿ç¨ãã座æ¨ç³»ã示ãã¾ãã
ãã®å±æ§ã¯ã次㮠SVG è¦ç´ ã§ä½¿ç¨ãããã¨ãã§ãã¾ãã
ä¾
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<mask
id="myMask1"
maskUnits="userSpaceOnUse"
x="20%"
y="20%"
width="60%"
height="60%">
<rect fill="black" x="0" y="0" width="100%" height="100%" />
<circle fill="white" cx="50" cy="50" r="35" />
</mask>
<mask
id="myMask2"
maskUnits="objectBoundingBox"
x="20%"
y="20%"
width="60%"
height="60%">
<rect fill="black" x="0" y="0" width="100%" height="100%" />
<circle fill="white" cx="50" cy="50" r="35" />
</mask>
<!-- Some reference rect to materialized the mask -->
<rect id="r1" x="0" y="0" width="45" height="45" />
<rect id="r2" x="0" y="55" width="45" height="45" />
<rect id="r3" x="55" y="55" width="45" height="45" />
<rect id="r4" x="55" y="0" width="45" height="45" />
<!-- The first 3 rect are masked with useSpaceOnUse units -->
<use mask="url(#myMask1)" href="#r1" fill="red" />
<use mask="url(#myMask1)" href="#r2" fill="red" />
<use mask="url(#myMask1)" href="#r3" fill="red" />
<!-- The last rect is masked with objectBoundingBox units -->
<use mask="url(#myMask2)" href="#r4" fill="red" />
</svg>
mask
<mask> ã§ã¯ã maskUnits ã¯è¦ç´ ã®å¹¾ä½å±æ§ (xãyãwidthãheight) ã«ä½¿ç¨ããã座æ¨ç³»ãå®ç¾©ãã¾ãã
| å¤ | userSpaceOnUse | objectBoundingBox |
|---|---|
| æ¢å®å¤ | objectBoundingBox |
| ã¢ãã¡ã¼ã·ã§ã³ | å¯ |
userSpaceOnUse-
ãã®å¤ã¯ãå¹¾ä½å±æ§ã®ãã¹ã¦ã®åº§æ¨ãããã¹ã¯ã®ä½ææã«å®ç¾©ãããã¦ã¼ã¶ã¼åº§æ¨ç³»ãåç §ãããã¨ã示ãã¾ãã
objectBoundingBox-
ãã®å¤ã¯ãå¹¾ä½å±æ§ã®ãã¹ã¦ã®åº§æ¨ãããã¹ã¯ãé©ç¨ãããè¦ç´ ã®å¢çããã¯ã¹ãå°æ°ã¾ãã¯ãã¼ã»ã³ãå¤ã§è¡¨ããã¨ã示ãã¾ããå¢çããã¯ã¹ã¯ã
<mask>ã®ã³ã³ãã³ãã"0 0 1 1"viewBoxã«çµã³ä»ãããã¦ããå ´åã¨åãã¨èãããã¨ãã§ãã¾ãã
仿§æ¸
| 仿§æ¸ |
|---|
| CSS Masking Module Level 1 > # element-attrdef-mask-maskunits > |