offset-position
Baseline
2024
Newly available
Since â¨January 2024â©, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
offset-position 㯠CSS ã®ããããã£ã§ããã¹ã«æ²¿ã£ãè¦ç´ ã®åæä½ç½®ãå®ç¾©ãã¾ãããã®ããããã£ã¯é常ã offset-path ããããã£ã¨çµã¿åããã¦ãåãã®å¹æã使ããããã«ä½¿ç¨ããã¾ãã offset-position ã®å¤ã¯ã path() ãªã©ã® offset-path 颿°ãç¬èªã®éå§ä½ç½®ãæå®ãã¦ããªãå ´åããªãã»ãããã¹ã«æ²¿ã£ã¦ç§»åããããã®è¦ç´ ã®åæé
ç½®ä½ç½®ã決å®ãã¾ãã
offset-position ããããã£ã¯ã offset ã®æ§æããããã£ï¼offset-anchor, offset-distance, offset-path ãªã©ï¼ã«åºã¥ãã¢ã¼ã·ã§ã³ã·ã¹ãã ã®ä¸é¨ã§ãããããã®ããããã£ã¯é£æºãã¦ããã¹ã«æ²¿ã£ã¦ãã¾ãã¾ãªã¢ã¼ã·ã§ã³å¹æã使ãã¾ãã
æ§æ
/* ãã¼ã¯ã¼ãå¤ */
offset-position: normal;
offset-position: auto;
offset-position: top;
offset-position: bottom;
offset-position: left;
offset-position: right;
offset-position: center;
/* <percentage> å¤ */
offset-position: 25% 75%;
/* <length> å¤ */
offset-position: 0 0;
offset-position: 1cm 2cm;
offset-position: 10ch 8em;
/* 辺ã¨ãªãã»ããå¤ */
offset-position: bottom 10px right 20px;
offset-position: right 3em bottom 10px;
offset-position: bottom 10px right;
offset-position: top right 10px;
/* ã°ãã¼ãã«å¤ */
offset-position: inherit;
offset-position: initial;
offset-position: revert;
offset-position: revert-layer;
offset-position: unset;
å¤
normal-
è¦ç´ ã«ãªãã»ããéå§ä½ç½®ããªããã¨ã示ããè¦ç´ ãå å«ãããã¯ã®
50% 50%ã®ä½ç½®ã«é ç½®ãã¾ããããã¯æ¢å®å¤ã§ãã auto-
ãªãã»ããã®éå§ä½ç½®ãè¦ç´ ã®ããã¯ã¹ã®å·¦ä¸é ã§ãããã¨ã示ãã¾ãã
<position>-
è¦ç´ ããã®ããã¯ã¹ã®ç«¯ãåºæºã¨ãã¦é ç½®ããä½ç½®ã x/y 座æ¨ã§æå®ãã¾ããä½ç½®ã¯ 1 ã¤ãã 4 ã¤ã®å¤ã使ç¨ãã¦å®ç¾©ãããã¨ãã§ãã¾ãã2 ã¤ã®ãã¼ã¯ã¼ã以å¤ã®å¤ã使ç¨ãããå ´åãæåã®å¤ã¯æ°´å¹³ä½ç½®ã2 ã¤ç®ã®å¤ã¯åç´ä½ç½®ã表ãã¾ãã1 ã¤ã®å¤ã ããæå®ãããå ´åã 2 ã¤ç®ã®å¤ã¯
centerã¨ã¿ãªããã¾ãã 3 ã¤ã¾ã㯠4 ã¤ã®å¤ã使ç¨ãããå ´åã<length-percentage>å¤ã¯ããã®åã®ãã¼ã¯ã¼ãã®å¤ã«å¯¾ãããªãã»ããã¨ãªãã¾ãããããã®å¤ã®åã«ã¤ãã¦è©³ããã¯ãbackground-positionãåç §ãã¦ãã ããã
å ¬å¼å®ç¾©
形弿æ³
offset-position =
normal |
auto |
<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>
ä¾
>åæãªãã»ããä½ç½®ã®è¨å®
ãã®ä¾ã§ã¯ã offset-path ããããã£ã使ç¨ãã¦ã cyan è¦ç´ ãç§»åãããã¹ãå®ç¾©ãã¦ãã¾ãã path() CSS 颿°ã®å¤ã¯ãæ²ç·ãè¨è¿°ãã SVG ãã¼ã¿ãã¹ã§ããè¦ç´ ã¯ã move ã¢ãã¡ã¼ã·ã§ã³ã®å®è¡ä¸ã«ããã®æ²ç·ã«æ²¿ã£ã¦ç§»åãã¾ãã
HTML
<div id="wrap">
<div id="motion-demo"></div>
</div>
CSS
#motion-demo {
offset-path: path("M20,20 C20,100 200,0 200,100");
offset-position: left top;
animation: move 3000ms infinite alternate ease-in-out;
width: 40px;
height: 40px;
background: cyan;
}
@keyframes move {
0%,
20% {
offset-distance: 0%;
}
80%,
100% {
offset-distance: 100%;
}
}
çµæ
æ§ã ãªãªãã»ããéå§ä½ç½®ã®æ¯è¼
ãã®ä¾ã§ã¯ã ray() ã使ç¨ã㦠offset-path ããããã£ã®å¤ãæå®ããå ´åãè¦ç´ ã®ãã¾ãã¾ãªåæãªãã»ããéå§ä½ç½®ãè¦è¦çã«æ¯è¼ãã¦ãã¾ããè¦ç´ ããã¯ã¹å
ã®æ°å¤ã¯ãCSS ãé©ç¨ãããè¦ç´ ã¨ããã®è¦ç´ ã®ã¢ã³ã«ã¼ç¹ã示ãã¦ãã¾ãã
.box {
background-color: green;
border-top: 6px dashed white;
background-clip: border-box;
position: absolute;
top: 20px;
left: 20px;
opacity: 20%;
color: white;
}
.box0 {
offset-position: normal;
}
.box1 {
offset-position: normal;
offset-path: ray(0deg);
}
.box2 {
offset-position: auto;
offset-path: ray(0deg);
}
.box3 {
offset-position: left top;
offset-path: ray(0deg);
}
.box4 {
offset-position: 30% 70%;
offset-path: ray(120deg);
}
çµæ
box0 ã§ã¯ãoffset-path ããããã£ããªãã¨ãããã¨ã¯ãoffset-position ã normal ã¾ã㯠auto ã®å ´åããã®å¹æããªããã¨ãæå³ãã¾ããoffset-position ã normal ã®å ´åãå
ç·ã¯å
å«ãããã¯ã®ä¸å¿ï¼ã¤ã¾ã 50% 50%ï¼ããå§ã¾ãã¾ããããã¯ããªãã»ãããã¹ã®æ¢å®ã®éå§ä½ç½®ã§ãããoffset-position ãæå®ããã¦ããªãå ´åã«ä½¿ç¨ããã¾ãããªãã»ããã®éå§ä½ç½® auto 㨠left top ã®éãã«æ³¨æãã¦ãã ãããå¤ auto ã¯ãè¦ç´ ã®ã¢ã³ã«ã¼ãã¤ã³ãããã®è¦ç´ ã®å·¦ä¸é
ã«é
ç½®ãã¾ãããå¤ left top ã¯ãè¦ç´ ã®ã¢ã³ã«ã¼ãã¤ã³ããå
å«ãããã¯ã®å·¦ä¸é
ã«é
ç½®ãã¾ãã
仿§æ¸
| Specification |
|---|
| Motion Path Module Level 1 > # offset-position-property > |