CSS repeating-conic-gradient() 颿°
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since 2020å¹´11æ.
* Some parts of this feature may have varying levels of support.
repeating-conic-gradient() 㯠CSS ã®é¢æ°ã§ãï¼åä¸ã®ã°ã©ãã¼ã·ã§ã³ã§ã¯ãªãï¼ç¹°ãè¿ãã®ã°ã©ãã¼ã·ã§ã³ãããªããè²ã®é·ç§»ãï¼ä¸å¿ããæ¾å°ç¶ã«åºããã®ã§ã¯ãªãï¼ãä¸å¿ç¹ã®å¨ããå転ããç»åãçæãã¾ãã
試ãã¦ã¿ã¾ããã
background: repeating-conic-gradient(red 0%, yellow 15%, red 33%);
background: repeating-conic-gradient(
from 45deg at 10% 50%,
brown 0deg 10deg,
darkgoldenrod 10deg 20deg,
chocolate 20deg 30deg
);
<section class="display-block" id="default-example">
<div id="example-element"></div>
</section>
#example-element {
min-height: 100%;
}
æ§æ
/* ã¹ã¿ã¼ãã¼ã¹ã: éã®ä¸ã«éã®ã¹ã¿ã¼ãã©ã¹ã:
ãã®ã°ã©ãã¼ã·ã§ã³ã¯å·¦ä¸ 4 åã® 1 ã®ä½ç½®ãä¸å¿ã¨ãã
æããéã¨æãéã®ã¹ã¿ã¼ãã©ã¹ãã§ã 3 度å¾ãã¦ãã
ããåç´ç·ãããã¾ããã */
repeating-conic-gradient(
from 3deg at 25% 25%,
hsl(200 100% 50%) 0deg 15deg,
hsl(200 100% 60%) 10deg 30deg
)
/* åçè²ç©ºéã§ã®è£é
è²ç¸ã®è£éæ¹æ³ã« shorter ãæå® */
repeating-conic-gradient(in hsl shorter hue, red, blue 90deg, green 180deg)
å¤
<angle>-
fromãã¼ã¯ã¼ãã«ç¶ãã¦è§åº¦ãæå®ãããã¨ã§ãæè¨åãã®ã°ã©ãã¼ã·ã§ã³ã®ä½ç½®ãå®ç¾©ãã¾ãã <position>-
background-positionããããã£ã¨åãé·ããé çªããã¼ã¯ã¼ãå¤ã使ç¨ãã¦ãã°ã©ãã¼ã·ã§ã³ã®ä¸å¿ã®ä½ç½®ãå®ç¾©ãã¾ããçç¥ããã¨ãæ¢å®å¤ã¯centerãããªãã¡ã°ã©ãã¼ã·ã§ã³ã«é ç½®ããã¾ãã <angular-color-stop>-
è²çµç±ç¹ã®
<color>å¤ã§ããã®å¾ã«ãªãã·ã§ã³ã§ 1 ï½ 2 åã®ä½ç½® (ã°ã©ãã¼ã·ã§ã³ã®åå¨è»¸ã«æ²¿ã£ã<angle>) ãç¶ãã¾ããæå¾ã®è²çµç±ç¹ããæåã®è²çµç±ç¹ã¾ã§ã®è§åº¦ãå復ã°ã©ãã¼ã·ã§ã³ã®å¤§ãããå®ç¾©ãã¾ãã <color-hint>-
飿¥ããè²çµç±ç¹ã®éã§ã°ã©ãã¼ã·ã§ã³ãã©ã®ããã«é²è¡ããããå®ç¾©ããè£éã®ãã³ãã§ããé·ãã¯ã 2 ã¤ã®è²çµç±ç¹ã®éã®ã©ã®ä½ç½®ã§ã°ã©ãã¼ã·ã§ã³ã®è²ãè²ã®é·ç§»ã®ä¸éç¹ã«å°éããããå®ç¾©ãã¾ããçç¥ããå ´åãè²ã®é·ç§»ã®ä¸éç¹ã¯ 2 ã¤ã®è²çµç±ç¹éã®ä¸éç¹ã«ãªãã¾ãã
ã¡ã¢: å復æå½¢ã°ã©ãã¼ã·ã§ã³ã«ãããè²çµç±ç¹ã¯ãç·å½¢ã°ã©ãã¼ã·ã§ã³ã«ãããè²çµç±ç¹ã¨åãã«ã¼ã«ã«å¾ãã¾ãã
解説
å復æå½¢ã°ã©ãã¼ã·ã§ã³ã®ä¾ã«ã¯ã¹ã¿ã¼ãã¼ã¹ããããã¾ãã repeating-conic-gradient() 颿°ã®è¿å¤ã¯ <gradient> ãã¼ã¿åã®ãªãã¸ã§ã¯ãã§ããã㯠<image> ã®ç¹æ®å½¢ã§ãã
æåã¨æå¾ã®è²çµç±ç¹ãã©ã¡ãã 0 度以ä¸ã 360 åº¦æªæºã«ãªã£ã¦ããªãå ´åã conic-gradient ã¯ç¹°ãè¿ããã¾ããã
ä»ã®ã°ã©ãã¼ã·ã§ã³ã¨åæ§ãæå½¢ã°ã©ãã¼ã·ã§ã³ã¯å
å¨çãªå¯¸æ³ãæã¡ã¾ãããã¤ã¾ããèªç¶ã®å¯¸æ³ãæ¨å¥¨ããã寸æ³ãæ¨å¥¨ããã縦横æ¯ãããã¾ãããèªèº«ã®å¯¸æ³ã¯é©ç¨å
ã®è¦ç´ ã®å¯¸æ³ãã¾ãã¯è¦ç´ ã®å¯¸æ³ä»¥å¤ã§è¨å®ããã <image> ã®å¯¸æ³ã«ä¸è´ãã¾ãã
<gradient> 㯠<image> ãã¼ã¿åã«å±ããããã <image> ã使ç¨ã§ããã¨ããã§ãã使ç¨ã§ãã¾ããããã®ããã conic-gradient() 㯠background-color ãããã®ä»ã® <color> ãã¼ã¿åã使ç¨ããããããã£ã§ã¯åä½ãã¾ããã
ã¡ã¢:
å復ããªãæå½¢ã°ã©ãã¼ã·ã§ã³ã使ããã«ã¯ãã°ã©ãã¼ã·ã§ã³ã 360 度ã®å転ã«ãããã conic-gradient() 颿°ã使ç¨ããããã¦ãã ããã
å復æå½¢ã°ã©ãã¼ã·ã§ã³ã®çè§£
repeating-conic-gradient ã®æ§æã¯ã conic-gradient() ã repeating-radial-gradient() ã®æ§æã«ä¼¼ã¦ãã¾ããå復ããªãæå½¢ã°ã©ãã¼ã·ã§ã³ã®ããã«ãè²çµç±ç¹ã¯ã°ã©ãã¼ã·ã§ã³ã®åå¼§ã®å¨ãã«é
ç½®ããã¾ããå復æ¾å°ã°ã©ãã¼ã·ã§ã³ã®ããã«ãå復é¨åã®å¤§ããã¯ãæå¾ã®è²çµç±ç¹ã®è§åº¦ããæåã®è²çµç±ç¹ãå¼ãããã®ã«ãªãã¾ãã

ä¸è¨ã®ã°ã©ãã¼ã·ã§ã³ã¯ 3 åã® 1 ãéã 3 åã® 1 ã赤ã 3 åã® 1 ãé»è²ã¨ãã¦å®ç¾©ããã¦ãã¾ãã
repeating-conic-gradient(from 0deg, red 0deg 30deg, yellow 30deg 60deg, blue 60deg 90deg);
repeating-radial-gradient(red 0 8%, yellow 8% 16%, blue 16% 24%);
conic-gradient(red 120deg, yellow 120deg 240deg, blue 240deg);
radial-gradient(red 33%, yellow 33% 66%, blue 66%);
å復ã°ã©ãã¼ã·ã§ã³ãç¹°ãè¿ãããã«ã¯ãæåã¨æå¾ã®è²çµç±ç¹ãå®ç¾©ãã¾ããç¹°ãè¿ããªãã°ã©ãã¼ã·ã§ã³ã¨åæ§ã«ãæåã¨æå¾ã®è²çµç±ç¹ã¯ãæç¤ºçã«å®£è¨ããã¦ããªãå ´åã 0 㨠100% ã¾ã㯠360deg ã®ããããã§ããã¨ä»®å®ããã¾ãããããã®å¤ãæ¢å®å¤ã¨ããå ´åãå復ã¢ã¼ã¯ã¯360度ã¨ãªããããç¹°ãè¿ããã¾ããã
ç¹°ãè¿ãã®ãªãæå½¢ã°ã©ãã¼ã·ã§ã³ã¨åæ§ã«ãè²çµç±ç¹ã¯ã°ã©ãã¼ã·ã§ã³ã®ä¸å¿ããåºã¦ããã°ã©ãã¼ã·ã§ã³è»¸ä¸ã§ã¯ãªããã°ã©ãã¼ã·ã§ã³åå¼§ (åã®åå¨) ã®å¨ãã«é
ç½®ããã¾ãã from <angle> ã宣è¨ããã¦ããªãå ´åã¯ä¸çªä¸ããå§ã¾ããæå¤§ã¨æå°ã®è²ã®è§åº¦ã®éãã§ããè§åº¦ã®å¤§ããåã ãæè¨åãã«é²ã¿ããããç¹°ãè¿ããã¨ã§ãåã®ä¸å¿ãåãããã«è²ãæ¨ç§»ãã¾ãã
ç¹°ãè¿ãã®æå½¢ã°ã©ãã¼ã·ã§ã³ã¯ãå転è§åº¦ã¨ã°ã©ãã¼ã·ã§ã³ã®ä¸å¿ãæå®ããããã«è²çµç±ç¹ã®ãªã¹ããæå®ãã¾ããå復ã®ãªãæå½¢ã°ã©ãã¼ã·ã§ã³ã¨åæ§ã«ãå復æå½¢ã°ã©ãã¼ã·ã§ã³ã®è²çµç±ç¹ã¯ <angle> ã§æå®ãã¾ããåä½ã¯ã度㯠degãã°ã©ãã¼ã·ã§ã³ã¯ gradãã©ã¸ã¢ã³ã¯ radãã¿ã¼ã³ã¯ turn ã§ããåã¯ã360 度ã400 ã°ã©ã¼ãã2Ïã©ã¸ã¢ã³ã1 ã¿ã¼ã³ã§ããå復æå½¢ã°ã©ãã¼ã·ã§ã³ã«å¯¾å¿ãã¦ãããã©ã¦ã¶ã¼ã§ã¯ã360 度ã 100% ã¨ãããã¼ã»ã³ãå¤ãåãä»ãã¾ãããããã¯ä»æ§ã«ã¯ããã¾ããã
æ¾å°ã°ã©ãã¼ã·ã§ã³ã¨æå½¢ã°ã©ãã¼ã·ã§ã³ã®æ§æã¯ãã°ã©ãã¼ã·ã§ã³ã®ä¸å¿ãç»åå
ã¾ãã¯ç»åå¤ã®ä»»æã®å ´æã«é
ç½®ãããã¨ãã§ãã¾ããä½ç½®ãæå®ããå¤ã¯ã 2 å¤ã® background-position ã®æ§æã¨åæ§ã§ãã
ã°ã©ãã¼ã·ã§ã³åå¼§ã¯ã°ã©ãã¼ã·ã§ã³ã®åå¨ã®ä¸é¨ã§ãã 0 度ã¯åãã¤ã¾ã 12 æã®æ¹åã§ããã°ã©ãã¼ã·ã§ã³ã®è²ã¯ãè§åº¦ã®ã¤ããè²çµç±ç¹ããã®éå§ç¹ãçµäºç¹ãããã¦ãã®éã«ãããä»»æã®è§åº¦ã®è²çµç±ç¹ãã¤ã³ãã«ãã£ã¦æ±ºå®ããã¾ããè²ã®é·ç§»ã¯ã飿¥ããè²ã®è²çµç±ç¹ã®éã«ããã«ã©ã¼ãã³ãã§å¤æ´ãããã¨ãã§ãã¾ãã
ã°ã©ãã¼ã·ã§ã³ã®ã«ã¹ã¿ãã¤ãº
ã°ã©ãã¼ã·ã§ã³ã®åå¼§ä¸ã«è§åº¦ã®ã¤ããè²çµç±ç¹ãã¤ã³ããããã«è¿½å ãããã¨ã§ãè¤æ°ã®è²ã®éã®é«åº¦ãªã«ã¹ã¿ãã¤ãºãããç§»è¡ãè¡ããã¨ãã§ãã¾ããè²çµç±ç¹ã®ä½ç½®ã¯ã<angle> ã使ã£ã¦æç¤ºçã«å®ç¾©ãããã¨ãã§ãã¾ããè²çµç±ç¹ã®ä½ç½®ãæå®ããªãå ´åã¯ããã®åã®è²çµç±ç¹ã¨å¾ã®è²çµç±ç¹ã®ä¸éã«é
ç½®ããã¾ããå復ããªãã°ã©ãã¼ã·ã§ã³ã¨åæ§ã«ãæåã¨æå¾ã®è²çµç±ç¹ã®è§åº¦ãæå®ããªãå ´åããã®å¤ã¯ 0 度㨠360 度ã«ãªãã¾ãããããã®è§åº¦ãæå®ããªãå ´åã¯ãéå復ã®åéå½¢ã°ã©ãã¼ã·ã§ã³ã«ãªãã¾ããæåã¨æå¾ã®è²çµç±ç¹ã«ãããã 0 度㨠360 度以å¤ã®å¤ã宣è¨ããã¨ãã°ã©ãã¼ã·ã§ã³ã¯ãã®å¤ã«åºã¥ãã¦ç¹°ãè¿ããã¾ããä¾ãã°ãæåã®è²ã«è§åº¦ã宣è¨ãããæå¾ã®è²æ¢ãã« 10% ã¨å®£è¨ããå ´åãå弧㯠10 åç¹°ãè¿ããã¾ããããããæåã«å®£è¨ããè²çµç±ç¹ãèµ·ç¹ã¨ãªããæå¾ã®è²çµç±ç¹ã¯æå¾ã«å®£è¨ããè²çµç±ç¹ã®è§åº¦ã¨ãªãã¾ããæ¬¡ã® 2 ã¤ã®ã°ã©ãã¼ã·ã§ã³ã¯ç価ã§ãã
repeating-conic-gradient(red, orange, yellow, green, blue 50%);
repeating-conic-gradient(from -45deg, red 45deg, orange, yellow, green, blue 225deg)
æ¢å®ã§ã¯ãè²ã¯ããè²çµç±ç¹ã®è²ããæ¬¡ã®è²çµç±ç¹ã®è²ã¸ã¨ã¹ã ã¼ãºã«ç§»è¡ããè²ã¨è²ã®ä¸éç¹ãè²ç§»è¡ã®ä¸éç¹ã¨ãªãã¾ãããã®è²é·ç§»ã®ä¸éç¹ã¯ãè²é·ç§»ã®ä¸éç¹ã®ä½ç½®ã示ãã«ã©ã¼ãã³ãã追å ãããã¨ã§ã 2 ã¤ã®è²çµç±ç¹éã®ä»»æã®ä½ç½®ã«ç§»åããããã¨ãã§ãã¾ãã
2 ã¤ä»¥ä¸ã®è²çµç±ç¹ãåãå ´æã«ããå ´åããã®å ´æã§å®£è¨ãããæåã®è²ã¨æå¾ã®è²ã®éã§ç¡¬ãç·ã«ãªãã¾ãã
ç°ãªãè§åº¦ã®åä½ãæ··å¨ããããã¨ã¯å¯è½ã§ãããããã¦ããã¾ãããã CSS ãèªã¿ã¥ãããªãã¾ãã
形弿æ³
<repeating-conic-gradient()> =
repeating-conic-gradient( [ <conic-gradient-syntax> ] )
<conic-gradient-syntax> =
[ [ [ from [ <angle> | <zero> ] ]? [ at <position> ]? ] || <color-interpolation-method> ]? , <angular-color-stop-list>
<position> =
<position-one> |
<position-two> |
<position-four>
<color-interpolation-method> =
in [ <rectangular-color-space> | <polar-color-space> <hue-interpolation-method>? | <custom-color-space> ]
<angular-color-stop-list> =
<angular-color-stop> , [ <angular-color-hint>? , <angular-color-stop> ]#?
<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}
<rectangular-color-space> =
srgb |
srgb-linear |
display-p3 |
display-p3-linear |
a98-rgb |
prophoto-rgb |
rec2020 |
lab |
oklab |
<xyz-space>
<polar-color-space> =
hsl |
hwb |
lch |
oklch
<hue-interpolation-method> =
[ shorter | longer | increasing | decreasing ] hue
<custom-color-space> =
<dashed-ident>
<angular-color-stop> =
<color> <color-stop-angle>?
<angular-color-hint> =
<angle-percentage> |
<zero>
<length-percentage> =
<length> |
<percentage>
<xyz-space> =
xyz |
xyz-d50 |
xyz-d65
<color-stop-angle> =
[ <angle-percentage> | <zero> ]{1,2}
<angle-percentage> =
<angle> |
<percentage>
ã¢ã¯ã»ã·ããªãã£ã®èæ ®
ãã©ã¦ã¶ã¼ã¯ãèæ¯ç»åã«é¢ããç¹å¥ãªæ å ±ãæ¯æ´æè¡ã«æä¾ãã¾ãããããã¯ä¸»ã«ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã«ã¨ã£ã¦éè¦ãªãã¨ã§ãã¹ã¯ãªã¼ã³ãªã¼ãã¼ã¯ãã®åå¨ãåç¥ããªããããã¦ã¼ã¶ã¼ã«ä½ãä¼ãããã¾ãããæå½¢ã°ã©ãã¼ã·ã§ã³ã使ã£ã¦åã°ã©ãã叿¾æ¨¡æ§ãªã©ã®å¹æãåºããã¨ã¯å¯è½ã§ããã CSS ç»åã¯ä»£æ¿ããã¹ããå²ãå½ã¦ããã¤ãã£ããªæ¹æ³ãæä¾ãã¦ããªããããæå½¢ã°ã©ãã¼ã·ã§ã³ã§è¡¨ç¾ãããç»åã¯ã¹ã¯ãªã¼ã³ãªã¼ãã¼ã®ã¦ã¼ã¶ã¼ãèªç¥ãããã¨ã¯ã§ãã¾ããããã¼ã¸ã®å ¨ä½çãªç®çãçè§£ããããã«éè¦ãªæ å ±ãç»åã«å«ã¾ãã¦ããå ´åã¯ãææ¸å ã§æå³çã«è¨è¿°ããæ¹ãè¯ãã§ãããã
ä¾
>ç½é»ã®ã¹ã¿ã¼ãã©ã¹ã
div {
background-image: repeating-conic-gradient(white 0 9deg, black 9deg 18deg);
}
ä¸å¿ãããããã°ã©ãã¼ã·ã§ã³
ãã®ã°ã©ãã¼ã·ã§ã³ã¯ 18 åç¹°ãè¿ããã¾ãããå³ååããè¦ããªãã®ã§ã 9 åã®ç¹°ãè¿ãã«ããè¦ãã¾ããã
div {
background: repeating-conic-gradient(
from 3deg at 25% 25%,
green,
blue 2deg 5deg,
green,
yellow 15deg 18deg,
green 20deg
);
}
è²ç¸ã§ã®è£é
ãã®è£éå¦çã®ä¾ã§ã¯ã hsl è²ç³»ã使ç¨ãã¦ãè²ç¸ãè£éãã¦ãã¾ãã
.shorter {
background-image: repeating-conic-gradient(
in hsl shorter hue,
red,
blue 180deg
);
}
.longer {
background-image: repeating-conic-gradient(
in hsl longer hue,
red,
blue 180deg
);
}
å·¦ã®ããã¯ã¹ã¯ã shorter ã®è£éã使ç¨ãã¦ãããè²ç¸ç°ã®çãæ¹ã®å¼§ã使ç¨ãã¦ãè²ã赤ããéã«ç´æ¥å¤åãã¦ããã¨ãããã¨ã«ãªãã¾ããå³ã®ããã¯ã¹ã¯ã longer ã®è£éã使ç¨ãã¦ãããè²ã赤ããéã«å¤åããéã«ãç·ãé»ããªã¬ã³ã¸ãéã£ã¦å¤åãã¦ããã¨ãããã¨ã«ãªãã¾ãã
ãã®ä»ã® repeating-conic-gradient ã®ä¾
ãã以å¤ã®ä¾ã¯ CSS ã°ã©ãã¼ã·ã§ã³ãåç §ãã¦ãã ããã
仿§æ¸
| Specification |
|---|
| CSS Images Module Level 4> # repeating-gradients> |