rect()
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.
rect() 㯠CSS 颿°ã§ãå
å«ãããã¯ã®ä¸ç«¯ã¨å·¦ç«¯ããæå®ããè·é¢ã«ç©å½¢ã使ãã¾ãããã㯠<basic-shape> ãã¼ã¿åã®åºæ¬ã·ã§ã¤ã颿°ã§ããrect() 颿°ã offset-path ã®ãã㪠CSS ããããã£ã§ä½¿ç¨ããè¦ç´ ãç§»åããç©å½¢ã®ãã¹ã使ãããã clip-path ã§ã¯ãªããã³ã°é åã®å½¢ç¶ãå®ç¾©ããããããã¨ãã§ãã¾ãã
æ§æ
offset-path: rect(0 1% auto 3% round 0 1px);
clip-path: rect(50px 70px 80% 20%);
å¤
å
å´ã®ç©å½¢ãå®ç¾©ããã«ã¯ãä¸ç«¯ã®ãªãã»ããããæè¨åãã« 4 ã¤ã®ãªãã»ããå¤ãæå®ãããªãã·ã§ã³ã§ round ãã¼ã¯ã¼ã㨠border-radius 弿°ãæå®ãã¾ããããããã®ãªãã»ããå¤ã«ã¯ <length>, <percentage>, ã¾ãã¯ãã¼ã¯ã¼ã auto ãæå®ãããã¨ãã§ãã¾ãã
<length-percentage>-
ç©å½¢ã®ä¸ä¸å·¦å³ã®ç«¯ã¨ãå å«ãããã¯ã®ä¸ç«¯ã¾ãã¯å·¦ç«¯ããã®è·é¢
<length-percentage>å¤ãæå®ãã¾ããæåã®å¤ï¼ä¸ç«¯ï¼ã¨ 3 ã¤ç®ã®å¤ï¼ä¸ç«¯ï¼ã¯ã å å«ãããã¯ã®ä¸ç«¯ããã®è·é¢ã§ãã ã 2 ã¤ç®ã®å¤ï¼å³ç«¯ï¼ã¨ 4 ã¤ç®ã®å¤ï¼å·¦ç«¯ï¼ã¯ã å å«ãããã¯ã®å·¦ç«¯ããã®è·é¢ã§ãã2 ã¤ç®ï¼å³ï¼ã¨ 3 ã¤ç®ï¼ä¸ï¼ã®å¤ã¯ããããã 4 ã¤ç®ï¼å·¦ï¼ã¨ 1 ã¤ç®ã®å¤ï¼ä¸ï¼ã«ãã£ã¦ã¯ã©ã³ããããä¸ç«¯ãä¸ç«¯ãè¶ããããå³ç«¯ã左端ãè¶ãããããã®ãé²ãã¾ããä¾ãã°ãrect(10px 0 0 20px)ã¯rect(10px 20px 10px 20px)ã«ã¯ã©ã³ãããã¾ãã auto-
ãã®å¤ãç¨ãããã辺ããå å«ãããã¯ã®å¯¾å¿ãã辺ã¨ä¸è´ããã¾ããæåã®å¤ï¼ä¸ï¼ã¾ãã¯4çªç®ã®å¤ï¼å·¦ï¼ã«
autoã使ç¨ãããå ´åãautoã®å¤ã¯0ã¨ãªãã 2 ã¤ç®ï¼å³ï¼ã¾ã㯠3 ã¤ç®ï¼ä¸ï¼ã«ä½¿ç¨ãããå ´åãautoã®å¤ã¯100%ã¨ãªãã¾ãã round <'border-radius'>-
CSS ã¯
border-radiusã®ä¸æ¬æå®ããããã£ã¨åãæ§æãç¨ãã¦ãç©å½¢ã®è§ã®ä¸¸ã¿ã®åå¾ãæå®ãã¾ãããã®å¼æ°ã¯ãªãã·ã§ã³ã§ãã
形弿æ³
<rect()> =
rect( [ <length-percentage> | auto ]{4} [ round <'border-radius'> ]? )
<length-percentage> =
<length> |
<percentage>
<border-radius> =
<length-percentage [0,â]>{1,4} [ / <length-percentage [0,â]>{1,4} ]?
ä¾
>offset-path ã rect() ã§ä½æ
ãã®ä¾ã§ã¯ã offset-path ããããã£ã§ rect() 颿°ã使ç¨ãã¦ãè¦ç´ ï¼ãã®ä¾ã§ã¯èµ¤æ ï¼ãç§»åããçµè·¯ã®å³å½¢ãå®ç¾©ãã¦ãã¾ããããããç°ãªã rect() 颿°ã®å¤ã使ç¨ãã¦ãã¾ããããã¯ã¹å
ã®ç¢å°ã¯ããã¯ã¹ã®å³ç«¯ãæãã¦ãã¾ãã
<div class="container">
Rectangular path 1
<div class="path rect-path-1">â</div>
</div>
<div class="container">
Rectangular path 2
<div class="path rect-path-2">â</div>
</div>
<div class="container">
Rectangular path 3
<div class="path rect-path-3">â</div>
</div>
.container {
position: relative;
display: inline-block;
width: 200px;
height: 200px;
border: 1px solid black;
margin: 15px;
text-align: center;
}
.path {
width: 40px;
height: 40px;
background-color: red;
position: absolute;
animation: move 10s linear infinite;
}
.rect-path-1 {
offset-path: rect(50px 150px 200px 50px round 20%);
}
.rect-path-2 {
offset-path: rect(50px auto 200px 50px round 20%);
}
.rect-path-3 {
offset-path: rect(50px auto 200px auto);
}
@keyframes move {
0% {
offset-distance: 0%;
}
100% {
offset-distance: 100%;
}
}
çµæ
- ãã¹ 1 ã®ç©å½¢ã¯ãå
å«ãããã¯ããã® 4 ã¤ã®è¾ºï¼ä¸ãå³ãä¸ãå·¦ï¼ã®è·é¢ãæå®ãã¦ãã¾ããä¸ç«¯ã¨ä¸ç«¯ã®å¤ã¯ãå
å«ãããã¯ã®ä¸ç«¯ããã®è·é¢ã§ããå³ã¨å·¦ã®å¤ã¯ãå
å«ãããã¯ã®å·¦ç«¯ããã®è·é¢ã§ããããã«ãç©å½¢ã®è§ã¯
20%ã«ä¸¸ãããã赤ãããã¯ã¹è¦ç´ ã¯ãã®ãã¹ã«æ²¿ã£ã¦ç§»åããã¨ãã丸ããããè§ã«æ²¿ãããã«ãªãã¾ããããã¯ã¹å ã®ç¢å°ããç©å½¢ã®ãã¹ã®è§ã®ã«ã¼ãã«æ²¿ã£ã¦ãããã¨ã«æ³¨ç®ãã¦ãã ããã - ãã¹ 2 ã®ç©å½¢ã¯ãã¹ 1 ã®ç©å½¢ã¨ä¼¼ã¦ãã¾ãããå³ã®å¤ã
autoã§ãããå¤100%ã¨çããç¹ãç°ãªãã¾ããããã«ãããç©å½¢ã®å³ç«¯ãå å«ãããã¯ã®å³ç«¯ã«ä¸è´ãããã¹1ãããåºãç©å½¢ã使ããã¾ãã - ãã¹ 3 ã®ç©å½¢ã§ã¯ã左辺ã¨å³è¾ºã®å¼æ°ã
autoã¨æå®ããround <'border-radius'>ã®å¼æ°ããªããã¦ãã¾ããããã«ãããå å«ãããã¯ã®å¹ ãæã¡ããã¹ 1 ããã¹ 2 ã®ç©å½¢ã®ããã«è§ã丸ããªãç©å½¢ã®ç©å½¢ã使ããã¾ãããã®ããã¯ã¹å ã®è§ã®ç¢å°ã®åãã«æ³¨ç®ãã¦ãã ããã
仿§æ¸
| Specification |
|---|
| CSS Shapes Module Level 1> # funcdef-basic-shape-rect> |
ãã©ã¦ã¶ã¼ã®äºææ§
é¢é£æ å ±
inset()颿°xywh()颿°clip-pathããããã£offset-pathããããã£<basic-shape>ãã¼ã¿å- CSS ã·ã§ã¤ãã¢ã¸ã¥ã¼ã«
- åºæ¬ã·ã§ã¤ãã®ã¬ã¤ã