mask-clip
Baseline
åºãå©ç¨å¯è½
*
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2023å¹´12æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
* ãã®æ©è½ã®ä¸é¨ã¯ã対å¿ã¬ãã«ãç°ãªãå ´åãããã¾ãã
mask-clip 㯠CSS ã®ããããã£ã§ããã¹ã¯ãå½±é¿ããé åãæå®ãã¾ããè¦ç´ ã®æç»ãããã³ã³ãã³ãã¯ãã®é åã«å¶éããã¾ãã
æ§æ
/* <coord-box> å¤ */
mask-clip: content-box;
mask-clip: padding-box;
mask-clip: border-box;
mask-clip: fill-box;
mask-clip: stroke-box;
mask-clip: view-box;
/* ãã¼ã¯ã¼ãå¤ */
mask-clip: no-clip;
/* è¤æ°ã®å¤ */
mask-clip: padding-box, no-clip;
mask-clip: view-box, fill-box, border-box;
/* ã°ãã¼ãã«å¤ */
mask-clip: inherit;
mask-clip: initial;
mask-clip: revert;
mask-clip: revert-layer;
mask-clip: unset;
å¤
ãã®ããããã£ã¯ãã«ã³ãã§åºåããããã¼ã¯ã¼ãå¤ã®ãªã¹ããåãå
¥ãã¾ããåå¤ã¯ <coord-box> ã¾ã㯠no-clip ã§ãã
content-box-
æç»ãããã³ã³ãã³ãã¯ãã³ã³ãã³ãããã¯ã¹ã§åãåããã¾ãã
padding-box-
æç»ãããã³ã³ãã³ãã¯ãããã£ã³ã°ããã¯ã¹ã§åãåããã¾ãã
border-box-
æç»ãããã³ã³ãã³ãã¯ãå¢çããã¯ã¹ã§åãåããã¾ãã
fill-box-
æç»ãããã³ã³ãã³ãã¯ããªãã¸ã§ã¯ãã®å²ã¿ããã¯ã¹ã§åãåããã¾ãã
stroke-box-
æç»ãããã³ã³ãã³ãã¯ããªãã¸ã§ã¯ãã®è¼ªéç·ããã¯ã¹ã§åãåããã¾ãã
view-box-
ç´è¿ã® SVG ãã¥ã¼ãã¼ããåç §ããã¯ã¹ã¨ãã¦ä½¿ç¨ãã¾ãã
viewBox屿§ã SVG ãã¥ã¼ãã¼ãã使ãã¦ããè¦ç´ ã«æå®ãããã¨ãåç §ããã¯ã¹ã¯viewBox屿§ã§ç¤ºããã座æ¨ç³»ã®åç¹ã«é ç½®ãããåç §ããã¯ã¹ã®å¯¸æ³ã¯viewBox屿§ã®å¹ ã¨é«ãã«è¨å®ããã¾ãã no-clip-
æç»ãããã³ã³ãã³ãã¯åãåããã¾ããã
border-
ãã®ãã¼ã¯ã¼ãã¯
border-boxã¨åãåä½ããã¾ãã padding-
ãã®ãã¼ã¯ã¼ãã¯
padding-boxã¨åãåä½ããã¾ãã content-
ãã®ãã¼ã¯ã¼ãã¯
content-boxã¨åãåä½ããã¾ãã text-
ãã®ãã¼ã¯ã¼ãã¯è¦ç´ ã®ããã¹ãã§ãã¹ã¯ç»åãåãåãã¾ãã
解説
mask-clip ããããã£ã¯ãé©ç¨ããããã¹ã¯ã®å½±é¿ãåããè¦ç´ ã®é åãå®ç¾©ãã¾ãã
SVG ã® <mask> è¦ç´ ãåç
§ããªããã¹ã¯ã¬ã¤ã¤ã¼ç»åã®å ´åã mask-clip ããããã£ã¯ããã¹ã¯ã®æç»é åãã¤ã¾ããã¹ã¯ã®å½±é¿ãåããé åãå®ç¾©ãã¾ããè¦ç´ ã®æç»ã³ã³ãã³ãã¯ããã®é åã«å¶éããã¾ãã
mask-clip ããããã£ã¯ã <mask> è¦ç´ ãåç
§ãããã¹ã¯ã¬ã¤ã¤ã¼ã®ç»åã«ã¯å½±é¿ãã¾ããã <mask> è¦ç´ ã® xãyãwidthãheightãmaskUnits ã®å屿§ã¯ã mask-image ã®ã½ã¼ã¹ã <mask> ã§ããå ´åã®ãã¹ã¯ã®æç»é åãæ±ºå®ãã¾ãã
1 ã¤ã®è¦ç´ ã«è¤æ°ã®ãã¹ã¯ã¬ã¤ã¤ã¼ãé©ç¨ãããã¨ãã§ãã¾ããã¬ã¤ã¤ã¼ã®æ°ã¯ã mask-image ããããã£ã®å¤ã«ã«ã³ãã§åºåãããå¤ã®æ°ã«ãã£ã¦æ±ºã¾ãã¾ãï¼å¤ã none ã®å ´åãåæ§ã§ãï¼ãã«ã³ãã§åºåãããå¤ã®ãªã¹ãå
ã®å mask-clip å¤ã¯ã mask-image å¤ã¨é çªã«ç
§åããã¾ãã 2 ã¤ã®ããããã£ã®å¤ã®æ°ãç°ãªãå ´åã mask-clip ã®ä½åãªå¤ã¯ä½¿ç¨ããã¾ãããã¾ãã mask-clip ã®å¤ã mask-image ã®å¤ãããå°ãªãå ´åã mask-clip ã®å¤ã¯ç¹°ãè¿ããã¾ãã
å ¬å¼å®ç¾©
| åæå¤ | border-box |
|---|---|
| é©ç¨å¯¾è±¡ | ãã¹ã¦ã®è¦ç´ ã SVG ã®å ´å㯠<defs> è¦ç´ ããã¹ã¦ã®ã°ã©ãã£ãã¯è¦ç´ ãé¤ããã³ã³ããã¼è¦ç´ ã«é©ç¨ããã |
| ç¶æ¿ | ãªã |
| è¨ç®å¤ | æå®éã |
| ã¢ãã¡ã¼ã·ã§ã³ã®ç¨®é¡ | 颿£å¤ |
形弿æ³
mask-clip =
[ <coord-box> | no-clip ]#
<coord-box> =
<paint-box> |
view-box
<paint-box> =
<visual-box> |
fill-box |
stroke-box
<visual-box> =
content-box |
padding-box |
border-box
ä¾
>å¢çããã¯ã¹ã§ãã¹ã¯ãåãåã
ãã®ä¾ã§ã¯ã3 ã¤ã® mask-clip å¤ã示ãã¦ãã¾ãã
HTML
3 ã¤ã®è¦ç´ ãå«ã¾ãã¦ãããããããç°ãªã <coord-box> å¤ãã¯ã©ã¹åã¨ãã¦ä½¿ç¨ããã¦ãã¾ãã
<div class="border-box"></div>
<div class="padding-box"></div>
<div class="content-box"></div>
CSS
CSS ã¯ãèæ¯ãå¢çãããã£ã³ã°ããã¼ã¸ã³ãããã³ãã¹ã¯ç»åãæã¤è¦ç´ ãå®ç¾©ããå <div> ã«ç°ãªã <coord-box> ãæå®ãã¾ããã¯ã©ã¹ã®ååã§ã³ã³ãã³ããçæãããã®ããã¹ãããã¹ã¯ããã¦è¡¨ç¤ºãããªããªãã®ãé²ãããã« 10px ä¸ã«ç§»åãã¾ããã
div {
width: 100px;
height: 100px;
background-color: #8cffa0;
margin: 10px;
border: 20px solid #8ca0ff;
padding: 20px;
mask-image: url("https://mdn.github.io/shared-assets/images/examples/mdn.svg");
mask-size: 100% 100%;
}
.content-box {
mask-clip: content-box;
}
.border-box {
mask-clip: border-box;
}
.padding-box {
mask-clip: padding-box;
}
div::before {
content: attr(class);
position: relative;
top: -10px;
}
çµæ
仿§æ¸
| 仿§æ¸ |
|---|
| CSS Masking Module Level 1 > # the-mask-clip > |