mask-position
Baseline
2023
Newly available
Since â¨December 2023â©, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
mask-position 㯠CSS ããããã£ã§ãå®ç¾©ããããã¹ã¯ç»åããããã«ã¤ãã¦ã mask-origin ã§è¨å®ããããã¹ã¯ä½ç½®ã¬ã¤ã¤ã¼ã«å¯¾ããåæä½ç½®ãè¨å®ãã¾ãã
æ§æ
/* åä¸ã® <position> ãã¼ã¯ã¼ãå¤ */
/* 2 ã¤ç®ã®å¤ã 'center' ã«è¨å®ãã */
mask-position: left;
mask-position: center;
mask-position: right;
mask-position: top;
mask-position: bottom;
/* 2 ã¤ã® <position> ãã¼ã¯ã¼ãå¤ */
mask-position: left center;
mask-position: right top;
/* 1 ã¤ã®é·ãã¾ãã¯ãã¼ã»ã³ãå¤ã® <position> å¤ */
/* æ°´å¹³ä½ç½®ãåç´ä½ç½®ã¯ 'center' ã«è¨å®ãã */
mask-position: 25%;
mask-position: 0px;
mask-position: 8em;
/* 2 ã¤ã®é·ãã¾ãã¯ãã¼ã»ã³ãå¤ã® <position> å¤ */
/* 1 ã¤ç®ã®å¤ã¯æ°´å¹³ä½ç½®ã2 ã¤ç®ã®å¤ã¯åç´ä½ç½® */
mask-position: 25% 75%;
mask-position: 0px 0px;
mask-position: 10% 8em;
/* 端ããã®ãªãã»ãã: 4 ã¤ã® <position> å¤ */
mask-position: bottom 10px right 20px;
mask-position: right 3em bottom 10px;
mask-position: bottom 10px right 0;
/* è¤æ°ã® <position> å¤ */
mask-position:
top left,
bottom 10px right 10px;
mask-position:
1rem 1rem,
center;
/* ã°ãã¼ãã«å¤ */
mask-position: inherit;
mask-position: initial;
mask-position: revert;
mask-position: revert-layer;
mask-position: unset;
å¤
1 ã¤ä»¥ä¸ã® <position> å¤ãã«ã³ãã§åºåã£ããã®ã§ãã
<position>-
è¦ç´ ããã¯ã¹ã®è¾ºããã® 2 次å ã®ä½ç½®ã表ã 1 ã¤ãã 4 ã¤ã®å¤ã§ããç¸å¯¾ã¾ãã¯çµ¶å¯¾ãªãã»ãããä¸ãããã¨ãã§ãã¾ãã
解説
mask-position ããããã£ã¯ãåãã¹ã¯ã¬ã¤ã¤ã¼ã®ä½ç½®ãå®ç¾©ãã¾ãã1 ã¤ã®è¦ç´ ã«è¤æ°ã®ãã¹ã¯ã¬ã¤ã¤ã¼ãé©ç¨ãããã¨ãã§ãã¾ããã¬ã¤ã¤ã¼ã®æ°ã¯ã mask-image ããããã£ã®å¤ã«ã«ã³ãã§åºåãããå¤ã®æ°ã«ãã£ã¦æ±ºã¾ãã¾ãï¼none å¤ãã¬ã¤ã¤ã¼ã使ãã¾ãï¼ã
ã«ã³ãã§åºåãããå¤ã®ãªã¹ãå
ã®ããããã® mask-position å¤ã¯ã mask-image å¤ã®ãªã¹ãã§å®ç¾©ããã¦ããé¢é£ä»ãããããã¹ã¯ã¬ã¤ã¤ã¼ã¨é çªã«å¯¾å¿ä»ãããã¾ãã 2 ã¤ã®ããããã£ã®å¤ã®æ°ãç°ãªãå ´åã¯ã次ã®ããã«ãªãã¾ãã
mask-positionã®æ°ã mask-image ã®æ°ãããå¤ãå ´åãmask-positionã®ä½åãªå¤ã¯ä½¿ç¨ããã¾ãããmask-positionã®æ°ã mask-image ã®æ°ãããå°ãªãå ´åãmask-positionã®å¤ãç¹°ãè¿ããã¾ãã
ããããã® mask-position ã¯ãé¢é£ä»ãããã mask-origin å¤ã«å¯¾ããé¢é£ä»ãããããã¹ã¯ã¬ã¤ã¤ã¼ã®ä½ç½®ãå®ç¾©ãã¾ãã mask-origin ããããã£ã®å¤ã¯ãåæ§ã« mask-image ã®å¤ã¨é çªã«ç
§åãããä½å㪠mask-position å¤ã¯ä½¿ç¨ãããªããã mask-position å¤ã®æ°ã mask-origin å¤ãããå°ãªãå ´åã¯ç¹°ãè¿ããã¾ãããããã£ã¦ãåãã¹ã¯ã¬ã¤ã¤ã¼ã«ã¯ãé¢é£ä»ãããã mask-origin ããã³ mask-position å¤ãåå¨ãã¾ãã
mask-origin ãè¨å®ããã¦ããªãå ´åãå¤ã¯æ¢å®ã§ padding-box ã«ãªãã¾ããããã¯ãå mask-position ã®åç¹ãè¦ç´ ã®ããã£ã³ã°ããã¯ã¹ã§ãããã¨ãæå³ãã¦ãã¾ãã
åä¸å¤ã®æ§æ
mask-position ã®å¤ã 1 ã¤ã ãæå®ããã¦ããå ´åã2 ã¤ç®ã®å¤ã¯ center ã¨è¦ãªããã¾ããå¤ã <length> ã¾ã㯠<percentage> ã®å ´åããã¹ã¯ãåç¹ããã¯ã¹å
ã§åç´æ¹åã«ä¸å¤®ã«é
ç½®ãããããã«ãæ°´å¹³è»¸ã«æ²¿ã£ããã¹ã¯ã®ä½ç½®ãå®ç¾©ãã¾ããä¾ãã°ãmask-position: 0%; 㯠mask-position: 0% center ã¨åãã§ãã
ä½ç½®æå®ã«åä¸ã®ãã¼ã¯ã¼ãã使ç¨ããå ´åããã 1 ã¤ã®å¤ã¯ center ã«è§£æ±ºããã¾ãã mask-position ã®æ¢å®å¤ã¯ 0% 0% ã§ããã㯠mask-position: top left ã¨ç価ã§ãããã ããæ¬¡ã®å ´åã¯ä¾å¤ã§ãã
mask-position: top;ã¯mask-position: top center;ã¨ç価ã§ããmask-position: left;ã¯mask-position: center leftã¨ç価ã§ããmask-position: center;ã¯mask-position: center centerã¨åãã§ãã
å¤ã <length> å¤ã®å ´åããã¹ã¯ã®ä½ç½®æå®ã®å·¦ç«¯ããã®ãªãã»ããã¨ãã¦æ°´å¹³ä½ç½®ã表ãã¾ããæ£ã®å¤ã¯ãããã¯ã¹ã³ã³ããã¼ã®å·¦ç«¯ããå
å´ã¸ã®ãªãã»ããã表ãã¾ããè² ã®å¤ã使ç¨ããã¨ãè¦ç´ ã®ããã¯ã¹ã®å¤å´ã«ä½ç½®ãè¨å®ãããã¨ãã§ãã¾ããããã«ãããã¢ã¤ãã ãã³ã³ããã¼ã®å·¦ç«¯ã®å¤å´ã«é
ç½®ããããå¤å´ã¸ã®ãªãã»ããã使ããã¾ãã
ãã¼ã»ã³ãå¤
<percentage> å¤ã¯ãã³ã³ããã¼ã®å¹
ã«å¯¾ãããã¹ã¯ã®æ°´å¹³ä½ç½®ã®å¤ãã左端ãåºæºã¨ãã¦è¡¨ãã¾ãããã ãããªãã»ããã¯ãã¹ã¯ã®ç«¯ããããã¯ã¹ã®ç«¯ã¾ã§ã®è·é¢ã§ã¯ããã¾ããããã¹ã¯ç»åã®å¯¸æ³ã¯ã³ã³ããã¼ã®å¯¸æ³ããå·®ãå¼ããã¾ããããã¦ãã®çµæã®å¤ã®ãã¼ã»ã³ãå¤ããããã¯ã¹ã®å·¦ç«¯ããã®ç´æ¥ã®ãªãã»ããã¨ãã¦ä½¿ç¨ããã¾ããããã¯ã background-position ã®ãã¼ã»ã³ãå¤ã¨åãã§ãã
ç®åºå¼ã¯æ¬¡ã®ã¨ããã§ãã
(container dimension - mask dimension) * position percentage = dimension offset value
å¹
100px ã®ãã¹ã¯ã¨å¹
1000px ã®åç¹ããã¯ã¹ãæå®ããã¦ããå ´åãmask-position: 10%; (10% 50% ã¨åç) ãè¨å®ããã¨ããã¹ã¯ã¯å·¦ç«¯ãã 90px ã®ä½ç½®ã«åç´æ¹åã«ä¸å¤®ã«é
ç½®ããã¾ããç®åºã¯ (1000 - 100) * 10% = 90 ã§ããå·¦ã®ãªãã»ããã 0% ã ã£ãå ´åããã¹ã¯ã®å·¦ç«¯ã¯ã³ã³ããã¼ã®å·¦ç«¯ã«æãã¾ã ((1000 - 100) * 0% = 0)ã
å·¦ã®ãªãã»ããã 100% ã ã£ãå ´åãå¹
100px ã®ãã¹ã¯ã®å·¦ç«¯ã¯ 900px ((1000 - 100) * 100% = 900) ã«ãªãããããã¹ã¯ã®å³ç«¯ã¯ã³ã³ããã¼ã®å³ç«¯ã«å¯ãããã¾ãï¼100px ã®ãã¹ã¯ã®å¹
ã«ã左端ããã®è·é¢ 900px ãå ããã¨ãå³ç«¯ã¯å·¦ç«¯ãã 1000px ã«ãªããã¤ã¾ãã³ã³ããã¼ã®å³ç«¯ã«ãªãã¾ãï¼ã
2 ã¤ã®å¤ã®æ§æ
2 ã¤ã®å¤ã§æ§æããã <position> ã¯ããã¹ã¯ä½ç½®æå®é åå
ã®ãã¹ã¯ç»åã®ä½ç½®ãæå®ãã¾ããé·ãå¤ã¨ãã¼ã»ã³ãå¤ã¯ãé åã® left ããã³ top ããã®ãªãã»ãããæå®ãã¾ãã
2 ã¤ã®å¤ã <length> å¤ã <percentage> å¤ãã¾ãã¯ãã¼ã¯ã¼ã center ã®å ´åãæåã®å¤ã¯ãã¹ã¯ã®ä½ç½®æå®é åã®å·¦ç«¯ããã®ãªãã»ããã¨ãã¦æ°´å¹³ä½ç½®ã表ãã2 ã¤ç®ã®å¤ã¯ããã®ä¸ç«¯ããã®ãªãã»ããã¨ãã¦åç´ä½ç½®ã表ãã¾ãããã¼ã»ã³ãå¤ã¯ããã®æ¬¡å
ã®ãã¹ã¯ã®ãµã¤ãºã«ãã£ã¦ãªãã»ããããã¾ãï¼ãã¼ã»ã³ãå¤ãåç
§ï¼ã
ããã«ã <percentage> å¤ãæå®ããã¦ããå ´åãæåã®å¤ã¯å·¦ç«¯ãåºæºã¨ããæ°´å¹³ä½ç½®ã®å¤ã§ããã2 ã¤ç®ã®å¤ã¯ä¸ç«¯ãåºæºã¨ããåç´ä½ç½®ã®å¤ã§ãããã¾ãã
軸ã«åºæã®ãã¼ã¯ã¼ãã®ãã¢ã¯ã軸ã«åºæã®ãã¼ã¯ã¼ãã¨é·ãã¾ãã¯ãã¼ã»ã³ãå¤ã¨åæ§ã«ãé åºã夿´ãããã¨ãã§ãã¾ããã2 ã¤ã®é·ãã¾ãã¯ãã¼ã»ã³ãå¤ã¯äº¤æã§ãã¾ããã
2 ã¤ã®å¤ã®ãã¡ä¸æ¹ã topãrightãbottomãleft ã®å ´åã2 ã¤ã®å¤ã¯é ä¸åã«ãªãã¾ããå¤ã®ãã¢ã«å«ã¾ãã center ã¾ã㯠<length-percentage> å¤ã¯ããã䏿¹ã®å¯¸æ³ã«é©ç¨ããã¾ãã
4 ã¤ã®å¤ã®æ§æ
4 ã¤ã®å¤ãããªãæ§æã¯ã2 çµã®å¤ã§æ§æãããåçµã«ã¯ããªãã»ãããã端ãæå®ãããã¼ã¯ã¼ãã¨ããªãã»ããã®è·é¢ãæå®ãã <length> ããã³ <percentage> å¤ãå«ã¾ãã¦ãã¾ããä¾ãã°ãmask-position: left 1em top 2em ã¯ãå·¦ã®ããã¯ã¹ã®ç«¯ããæ°´å¹³æ¹åã« 1emãä¸ç«¯ããåç´æ¹åã« 2em ãªãã»ãããããã¨ãæå®ãã¾ãã2 å¤ã§è¡¨ç¾ããã¨ãmask-position: 1em 2em ã¨ãªãã¾ãã
4 ã¤ã®å¤ã®æ§æã使ç¨ããå ´åããªãã»ããã¨ãã¸ãå®ç¾©ãã¦ããã®ã§ãé åºã¯éè¦ã§ã¯ããã¾ãããmask-position: top 2em left 1em 㨠mask-position: left 1em top 2em ã¯ãã©ã¡ããåãçµæã«ãªãã¾ãã
4 ã¤ã®å¤ã«ããæ§æã®çã®å®åã¯ãleft ããã³ top 以å¤ã®è¾ºããã®ãªãã»ãããæå®ã§ãããã¨ã«ããã¾ããä¾ãã°ã mask-position: bottom 10px right 20px ã¯ãä¸ç«¯ãã 10px åç´æ¹åã«ãå³ç«¯ãã 20px æ°´å¹³æ¹åã«ãªãã»ããã使ãã¾ããé常ã4 ã¤ã®å¤ã«ããæ§æã¯ãä¸ç«¯ãå³ç«¯ãããªãã»ããããããã«ä½¿ç¨ããã¾ãããããã2 夿§æã®ãªãã»ããã¨ãã¸ã®é çªãè¦ããããªãå ´åã«ãããã®æ§æã¯å½¹ç«ã¡ã¾ãã
注æãã¹ãç¹ã¨ãã¦ãbackground-position ã® <bg-position> ãã¼ã¿åã®å¤ã¨ã¯ç°ãªããmask-position ã® <position> å¤ã¯ 3 夿§æã使ç¨ã§ãããcenter ããã®ãªãã»ããã使ç¨ã§ãã¾ããããã¹ã¯ã bottom ã¾ã㯠right ãããªãã»ããããå ´åãmask-position ã§ã¯ 4 ã¤ã®å¤ãã¹ã¦ã宣è¨ããå¿
è¦ãããã¾ãã
4 ã¤ã®å¤ãããªãæ§æãæå¹ã§ããããã«ã¯ãåç´æ¹åã®ãªãã»ãã端ã¨ã㦠top ã¾ã㯠bottom ããåç´æ¹åã®é·ãã¾ãã¯ãã¼ã»ã³ãå¤ã¨ã¨ãã«æå®ããæ°´å¹³æ¹åã®ãªãã»ãã端ã¨ã㦠left ã¾ã㯠right ããæ°´å¹³æ¹åã®é·ãã¾ãã¯ãã¼ã»ã³ãå¤ã¨ã¨ãã«æå®ããå¿
è¦ãããã¾ãã
å ¬å¼å®ç¾©
| åæå¤ | 0% 0% |
|---|---|
| é©ç¨å¯¾è±¡ | ãã¹ã¦ã®è¦ç´ ã SVG ã®å ´å㯠<defs> è¦ç´ ããã¹ã¦ã®ã°ã©ãã£ãã¯è¦ç´ ãé¤ããã³ã³ããã¼è¦ç´ ã«é©ç¨ããã |
| ç¶æ¿ | ãªã |
| ãã¼ã»ã³ãå¤ | ãã¹ã¯æç»é åã®å¯¸æ³ãããã¹ã¯ã¬ã¤ã¤ã¼ç»åã®å¯¸æ³ãå¼ãããã®ã«å¯¾ããç¸å¯¾å¤ (background-position ã®ããã¹ããåç
§) |
| è¨ç®å¤ | åç¹ã表ã 2 ã¤ã®ãã¼ã¯ã¼ãã¨ããã®åç¹ããã® 2 ã¤ã®ãªãã»ããã§ãããããã絶対çãªé·ã (<length> ãæå®ãããå ´å) ã¾ãã¯ãã¼ã»ã³ãå¤ã§æå®ãããã |
| ã¢ãã¡ã¼ã·ã§ã³ã®ç¨®é¡ | å復å¯è½ãªã¹ã |
形弿æ³
mask-position =
<position>#
<position> =
<position-one> |
<position-two> |
<position-four>
<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>
ä¾
>åºæ¬çãªä½¿ãæ¹
<section>
<div></div>
</section>
section {
border: 1px solid black;
width: 250px;
height: 250px;
}
div {
width: 250px;
height: 250px;
margin-bottom: 10px;
background: blue linear-gradient(red, blue);
mask-image: url(https://mdn.github.io/shared-assets/images/examples/mask-star.svg);
mask-repeat: no-repeat;
mask-position: top right;
}
仿§æ¸
| Specification |
|---|
| CSS Masking Module Level 1 > # the-mask-position > |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
mask-imagemask-originmask-repeatmask-sizemask䏿¬æå®- CSS ãã¹ã¯ã¢ã¸ã¥ã¼ã«
background-position<position>