mask
åºçº¿
广æ³å¯ç¨
èª 2023å¹´12æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
CSS 屿§ mask å
许使ç¨è
éè¿é®ç½©æè
è£åç¹å®åºåçå¾ççæ¹å¼æ¥éèä¸ä¸ªå
ç´ çé¨åæè
å
¨é¨å¯è§åºåã
/* Keyword values */
mask: none;
/* Image values */
mask: url(mask.png); /* 使ç¨ä½å¾æ¥åé®ç½© */
mask: url(masks.svg#star); /* ä½¿ç¨ SVG å¾å½¢ä¸çå½¢ç¶æ¥åé®ç½© */
/* Combined values */
mask: url(masks.svg#star) luminance; /* Element within SVG graphic used as luminance mask */
mask: url(masks.svg#star) 40px 20px; /* ä½¿ç¨ SVG å¾å½¢ä¸çå½¢ç¶æ¥åé®ç½©å¹¶è®¾å®å®çä½ç½®ï¼ç¦»ä¸è¾¹ç¼ 40pxï¼ç¦»å·¦è¾¹ç¼ 20px */
mask: url(masks.svg#star) 0 0/50px 50px; /* ä½¿ç¨ SVG å¾å½¢ä¸çå½¢ç¶æ¥åé®ç½©å¹¶è®¾å®å®çä½ç½®å大å°ï¼é¿å®½é½æ¯ 50px */
mask: url(masks.svg#star) repeat-x; /* Element within SVG graphic used as horizontally repeated mask */
mask: url(masks.svg#star) stroke-box; /* Element within SVG graphic used as mask extending to the box enclosed by the stroke */
mask: url(masks.svg#star) exclude; /* Element within SVG graphic used as mask and combined with background using non-overlapping parts */
/* Global values */
mask: inherit;
mask: initial;
mask: unset;
夿³¨ï¼mask çç®åä¼å° mask-border 设为åå§å¼ãä½¿ç¨ mask çç®åä¼äºä½¿ç¨å
¶ä»ç®åæè
åèªå±æ§ç设置æ¥è¦çãè¿è½ä¿è¯ mask-border ä¹ä¼éæ°è®¾ç½®ä¸ºæ°çæææ ·å¼ã
| åå§å¼ | 该ç®åæå¯¹åºçæ¯ä¸ªå±æ§ï¼
|
|---|---|
| éç¨å ç´ | all elements; In SVG, it applies to container elements excluding the <defs> element and all graphics elements |
| æ¯å¦æ¯ç»§æ¿å±æ§ | å¦ |
| Percentages | 该ç®åæå¯¹åºçæ¯ä¸ªå±æ§ï¼
|
| 计ç®å¼ | 该ç®åæå¯¹åºçæ¯ä¸ªå±æ§ï¼
|
| å¨ç»ç±»å | 该ç®åæå¯¹åºçæ¯ä¸ªå±æ§ï¼
|
| Creates stacking context | æ¯ |
Syntax
>Values
<mask-reference>-
设置é®ç½©å¾ççè·¯å¾ã详è§
mask-imageã <masking-mode>-
设置é®ç½©å¾ççæ¨¡å¼ã详è§
mask-modeã <position>-
设置é®ç½©å¾ççä½ç½®ã详è§
mask-positionã <bg-size>-
设置é®ç½©ç大å°ã详è§
mask-sizeã <repeat-style>-
设置é®ç½©å¾ççé夿§ã详è§
mask-repeatã <geometry-box>-
å¦æåªæä¸ä¸ª <geometry-box> å¼è¢«èµäºï¼ä»å°ä¼è®¾ç½®
mask-originåmask-clipãå¦æä¸¤ä¸ª <geometry-box> 弿¾ç¤ºï¼ç¬¬ä¸ä¸ªå¼ä»£è¡¨mask-origin第äºä¸ªå¼ä»£è¡¨mask-clipã <geometry-box> | no-clip-
设置åºåï¼ä¼è¢«é®ç½©å¾çå½±åã详è§
mask-clipã <compositing-operator>-
设置é®ç½©å¾å±çç»åæä½ã详è§
mask-compositeã
æ£å¼è¯æ³
mask =
<mask-layer>#
<mask-layer> =
<mask-reference> ||
<position> [ / <bg-size> ]? ||
<repeat-style> ||
<geometry-box> ||
[ <geometry-box> | no-clip ] ||
<compositing-operator> ||
<masking-mode>
<mask-reference> =
none |
<image> |
<mask-source>
<position> =
<position-one> |
<position-two> |
<position-four>
<bg-size> =
[ <length-percentage [0,â]> | auto ]{1,2} |
cover |
contain
<repeat-style> =
repeat-x |
repeat-y |
repeat-block |
repeat-inline |
<repetition>{1,2}
<geometry-box> =
<shape-box> |
fill-box |
stroke-box |
view-box
<compositing-operator> =
add |
subtract |
intersect |
exclude
<masking-mode> =
alpha |
luminance |
match-source
<image> =
<url> |
<image()> |
<image-set()> |
<cross-fade()> |
<element()> |
<gradient>
<mask-source> =
<url>
<position-one> =
left |
center |
right |
top |
bottom |
x-start |
x-end |
y-start |
y-end |
block-start |
block-end |
inline-start |
inline-end |
<length-percentage>
<position-two> =
[ left | center | right | x-start | x-end ] && [ top | center | bottom | y-start | y-end ] |
[ left | center | right | x-start | x-end | <length-percentage> ] [ top | center | bottom | y-start | y-end | <length-percentage> ] |
[ block-start | center | block-end ] && [ inline-start | center | inline-end ] |
[ start | center | end ]{2}
<position-four> =
[ [ left | right | x-start | x-end ] <length-percentage> ] && [ [ top | bottom | y-start | y-end ] <length-percentage> ] |
[ [ block-start | block-end ] <length-percentage> ] && [ [ inline-start | inline-end ] <length-percentage> ] |
[ [ start | end ] <length-percentage> ]{2}
<length-percentage> =
<length> |
<percentage>
<repetition> =
repeat |
space |
round |
no-repeat
<shape-box> =
<visual-box> |
margin-box |
half-border-box
<image()> =
image( <image-tags>? [ <image-src>? , <color>? ]! )
<image-set()> =
image-set( <image-set-option># )
<cross-fade()> =
cross-fade( <cf-image># )
<element()> =
element( <id-selector> )
<visual-box> =
content-box |
padding-box |
border-box
<image-tags> =
ltr |
rtl
<image-src> =
<url> |
<string>
<image-set-option> =
[ <image> | <string> ] [ <resolution> || type( <string> ) ]?
<cf-image> =
[ <image> | <color> ] &&
<percentage [0,100]>?
<id-selector> =
<hash-token>
ä¾å
.target {
mask: url(#c1) luminance;
}
.anothertarget {
mask: url(resources.svg#c1) 50px 30px/10px 10px repeat-x exclude;
}
è§è
| è§è |
|---|
| CSS Masking Module Level 1 > # the-mask > |