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.
CSS 彿° conic-gradient() å建ä¸ä¸ªç±æ¸åç»æçå¾åï¼æ¸åçé¢è²å´ç»ä¸ä¸ªä¸å¿ç¹æè½¬ï¼è䏿¯ä»ä¸å¿è¾å°ï¼è¿è¡è¿æ¸¡ãé¥å½¢æ¸åçä¾åå
æ¬é¥¼å¾åè²è½®ãconic-gradient() 彿°çç»ææ¯ <gradient> æ°æ®ç±»åçå¯¹è±¡ï¼æ¤å¯¹è±¡æ¯ä¸ç§ç¹æ®ç <image> æ°æ®ç±»åã
å°è¯ä¸ä¸
background: conic-gradient(red, orange, yellow, green, blue);
background: conic-gradient(
from 0.25turn at 50% 30%,
#f69d3c,
10deg,
#3f87a6,
350deg,
#ebf8e1
);
background: conic-gradient(from 3.1416rad at 10% 50%, #e66465, #9198e5);
background: conic-gradient(
red 6deg,
orange 6deg 18deg,
yellow 18deg 45deg,
green 45deg 110deg,
blue 110deg 200deg,
purple 200deg
);
<section class="display-block" id="default-example">
<div id="example-element"></div>
</section>
#example-element {
min-height: 100%;
}
è¯æ³
/* ä¸ä¸ªæè½¬ 45 度çé¥å½¢æ¸åï¼ä»èè²æ¸åå°çº¢è² */
conic-gradient(from 45deg, blue, red);
/* ä¸ä¸ªèç´«è²æ¡ï¼ä»èè²æ¸åå°çº¢è²ï¼ä½åªæå³ä¸è±¡éå¯è§ï¼å 为é¥å½¢æ¸åçä¸å¿ä½äºå·¦ä¸è§ */
conic-gradient(from 90deg at 0 0, blue, red);
/* è²è½® */
background: conic-gradient(
hsl(360, 100%, 50%),
hsl(315, 100%, 50%),
hsl(270, 100%, 50%),
hsl(225, 100%, 50%),
hsl(180, 100%, 50%),
hsl(135, 100%, 50%),
hsl(90, 100%, 50%),
hsl(45, 100%, 50%),
hsl(0, 100%, 50%)
);
å¼
<angle>-
å¨
fromå ³é®åä¹åï¼ä»¥è§åº¦ä½ä¸ºå ¶å¼ï¼å®ä¹é¡ºæ¶éæ¹åçæ¸åæè½¬ã <position>-
使ç¨ä¸ background-position 屿§ç¸åçé¿åº¦ã顺åºåå ³é®åå¼ï¼å®ä¹æ¸åçä¸å¿ã妿çç¥ï¼é»è®¤å¼æ¯
centerï¼è¡¨ç¤ºæ¸åæ¯å± ä¸çã <angular-color-stop>-
è²æ ï¼color stopï¼ç
<color>å¼ï¼ç¶åæ¯ä¸ä¸ªæä¸¤ä¸ªå¯éçè²æ ä½ç½®ï¼æ²¿çæ¸ååå¨è½´ç<angle>ï¼ã <color-hint>-
æå¼æç¤ºï¼å®ä¹äºå¨ç¸é»è²æ ä¹é´çæ¸åå¦ä½è¿è¡ãè¿ä¸ªé¿åº¦å®ä¹äºæ¸åè²åºå¨ä¸¤ä¸ªè²æ ä¹é´çåªä¸ç¹å°è¾¾é¢è²è¿æ¸¡çä¸ç¹ã妿çç¥ï¼é¢è²è¿æ¸¡çä¸ç¹æ¯ä¸¤ä¸ªè²æ ä¹é´çä¸ç¹ã
夿³¨ï¼CSS æ¸åä¸çè²æ çæ¸²æä¸ SVG æ¸åä¸çè²æ éµå¾ªç¸åçè§åã
æè¿°
ä¸å ¶ä»æ¸å䏿 ·ï¼é¥å½¢æ¸å没æå å¨å°ºå¯¸ï¼ä¹å°±æ¯è¯´æ²¡æåºææé¦éç尺寸ï¼ä¹æ²¡æé¦éçæ¯ä¾ï¼å ¶å®é 大å°åå³äºæåºç¨çå ç´ ç大å°ã
è¦å建éå¤çé¥å½¢æ¸åæ¥å¡«å
360 度æè½¬ï¼åºè¯¥ä½¿ç¨ repeating-conic-gradient() 彿°ã
ç±äº <gradient> å±äº <image> æ°æ®ç±»åï¼å æ¤åªè½ç¨å¨è½ä½¿ç¨ <image> çå°æ¹ãå æ¤ï¼conic-gradient() å¨ background-color 以åå
¶ä»ä½¿ç¨ <color> æ°æ®ç±»åç屿§ä¸ä¸èµ·ä½ç¨ã
夿³¨ï¼ä¸ºä»ä¹å®è¢«ç§°ä¸ºâé¥å½¢âæ¸åï¼å¦æè²åçä¸ä¾§æ¯å¦ä¸ä¾§äº®å¾å¤ï¼åä»ä¸é¢çï¼å®å¯è½çèµ·æ¥åä¸ä¸ªåé¥ä½ã
é¥å½¢æ¸åçåæ
é¥å½¢æ¸åè¯æ³ä¸å¾åæ¸åè¯æ³ç±»ä¼¼ï¼ä½è²æ æ¾ç½®å¨æ¸ååå¼§ï¼åçå¨é¿ï¼å¨å´ï¼è䏿¯ä»æ¸åä¸å¿åºç°çæ¸å线ä¸ã使ç¨é¥å½¢æ¸åæ¶ï¼é¢è²ä¼å´ç»åå¿æè½¬ï¼ä»é¡¶é¨å¼å§é¡ºæ¶éæè½¬ãå¨å¾åæ¸åä¸ï¼é¢è²ä»æ¤åä¸å¿åå个æ¹ååå¤è¿æ¸¡ã

é¥å½¢æ¸åæ¯éè¿æç¤ºæè½¬è§åº¦ãæ¸åä¸å¿ï¼ç¶åæå®è²æ åè¡¨æ¥æå®çãä¸çº¿æ§æ¸ååå¾åæ¸åä¸åï¼çº¿æ§æ¸ååå¾åæ¸åçè²æ æ¯éè¿é¿åº¦æå®çï¼èé¥å½¢æ¸åçè²æ æ¯éè¿è§åº¦æå®çãåä½å
æ¬è§åº¦ degãæ¢¯åº¦ gradã弧度 rad åæ´åç turnãå¨ä¸ä¸ªå䏿 360 度ï¼400 个梯度ï¼2Ï å¼§åº¦ï¼1 åãæ¯æé¥å½¢æ¸åçæµè§å¨ä¹æ¥åç¾åæ¯å¼ï¼100% çäº 360 度ï¼ä½è¿ä¸å¨è§èä¸ã
ä¸å¾åæ¸å类似ï¼é¥å½¢æ¸åè¯æ³ç¨äºå°æ¸åä¸å¿å®ä½å¨å¾åå é¨çè³å¤é¨çä»»ä½ä½ç½®ãä½ç½®çå¼ç±»ä¼¼äºä¸¤ä¸ªå¼ç background-position è¯æ³ã
æ¸åçå¼§åº¦æ¯æ¸åçå¨é¿ãæ¸åæå¼§åº¦çèµ·å§ç¹æ¹åæ¯åï¼æ 12:00pm æ¹åãç¶åéè¿ from è§åº¦æ¥æè½¬ãæ¸åçé¢è²ç±å¾æçè²æ ãå®ä»¬çèµ·ç¹ãç»ç¹ï¼ä»¥åä»äºä¸¤è ä¹é´çå¯éç徿çè²æ å³å®ãé¢è²ä¹é´çè¿æ¸¡å¯ä»¥éè¿ç¸é»é¢è²çè²æ ä¹é´çé¢è²æç¤ºæ¥æ¹åã
èªå®ä¹æ¸å
éè¿å¨æ¸å弧䏿·»å æ´å¤è§åº¦çè²æ ï¼å¯ä»¥å¨å¤ç§é¢è²ä¹é´å建é«åº¦å®å¶çè¿æ¸¡ãè²æ çä½ç½®å¯ä»¥éè¿ä½¿ç¨ <angle> æ¥æç¡®å°å®ä¹ã妿䏿å®è²æ çä½ç½®ï¼å®å°ä½äºå
¶åé¢çè²æ ååé¢çè²æ ä¹é´ãå¦ææ²¡æä¸ºç¬¬ä¸ä¸ªææåä¸ä¸ªè²æ æå®è§åº¦ï¼åå
¶å¼åå«ä¸º 0 度å 360 度ã以ä¸ä¸¤ç§æ¸åæ¯çæçï¼
conic-gradient(red, orange, yellow, green, blue);
conic-gradient(red 0deg, orange 90deg, yellow 180deg, green 270deg, blue 360deg);
é»è®¤æ åµä¸ï¼é¢è²ä»ä¸ä¸ªè²æ å¤çé¢è²å¹³æ»è¿æ¸¡å°ä¸ä¸ä¸ªè²æ å¤çé¢è²ï¼é¢è²ä¹é´çä¸ç¹æ¯é¢è²è¿æ¸¡ä¹é´çä¸ç¹ãéè¿æ·»å é¢è²æç¤ºï¼å¯ä»¥å°æ¤é¢è²è¿æ¸¡ä¸ç¹ç§»å¨å°ä¸¤ä¸ªè²æ ä¹é´çä»»ä½ç¹ï¼æç¤ºé¢è²è¿æ¸¡çä¸é´ä½ç½®ã以䏿¯ä»èµ·ç¹å° 10% æ è®°ç纯红è²ï¼å¨ç»è¿æ´åç 80% æ¶ä»çº¢è²è¿æ¸¡å°èè²ï¼æå 10% 为纯èè²ãç¶èï¼çº¢è²å°èè²æ¸åååçä¸ç¹ä½äº 20% æ è®°å¤ï¼è䏿¯å¨æ²¡æ 80 梯度æ 20% é¢è²æç¤ºçæ åµä¸åçç 50% æ è®°å¤ã
conic-gradient(red 40grad, 80grad, blue 360grad);
å¦æä¸¤ä¸ªå以ä¸è²æ ä½äºåä¸ä½ç½®ï¼å转æ¢å°æ¯å¨è¯¥ä½ç½®å£°æç第ä¸ä¸ªåæåä¸ä¸ªé¢è²ä¹é´ç硬线ãè¦ä½¿ç¨é¥å½¢æ¸åå建饼å¾ï¼è¿ä¸æ¯å建饼å¾çæ£ç¡®æ¹æ³ï¼å ä¸ºèæ¯å¾åå¹¶éæ éç¢ï¼ï¼è¯·ä½¿ç¨ç¡¬è²æ ââå ¶ä¸ä¸¤ä¸ªç¸é»è²æ çè²æ è§åº¦ç¸åãæç®åçæ¹æ³æ¯ä½¿ç¨å¤ä¸ªä½ç½®çè²æ ã以ä¸ä¸¤ç§å£°ææ¯çæçï¼
conic-gradient(#fff 0.09turn, #bbb 0.09turn, #bbb 0.27turn, #666 0.27turn, #666 0.54turn, #000 0.54turn);
conic-gradient(#fff 0turn 0.09turn, #bbb 0.09turn 0.27turn, #666 0.27turn 0.54turn, #000 0.54turn 1turn);
è²æ åºæååºæåãå¼è¾ä½çåç»è²æ å°è¦çä¸ä¸ä¸ªè²æ çå¼ï¼ä»èåå»ºç¡¬è¿æ¸¡ã以ä¸å å®¹å¨ 30% æ è®°å¤ä»çº¢è²å为é»è²ï¼ç¶åå¨ 35% çæ¸åèå´å ä»é»è²å为èè²ï¼
conic-gradient(red .8rad, yellow .6rad, blue 1.3rad);
使ç¨é¥å½¢æ¸åè¿å¯ä»¥åå»ºå ¶ä»ææï¼æ£çæ ¼å°±æ¯å ¶ä¸ä¹ä¸ãéè¿åå»ºå ·æå·¦ä¸è§åå³ä¸è§ç½è²è±¡é以åå·¦ä¸è§åå³ä¸è§é»è²è±¡éç象éï¼ç¶åéå¤ 16 次æ¸åï¼å次横åï¼å次åä¸ï¼ï¼å°±å¯ä»¥å¶ä½æ£çã
conic-gradient(#fff 90deg, #000 0.25turn 0.5turn, #fff 1rad 1.5rad, #000 300grad);
background-size: 25% 25%;
ä½ å¯ä»¥æ··ååå¹é ä¸åçè§åº¦åä½ï¼ä½æå¥½ä¸è¦è¿æ ·åï¼ä»¥ä¸çå 容就已ç»å¾é¾çè§£ã
å½¢å¼è¯æ³
<conic-gradient()> =
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 å¾å䏿便宿¿ä»£ææ¬çåçæ¹å¼ï¼å æ¤å±å¹é 读å¨ç¨æ·æ æ³è®¿é®ç±é¥å½¢æ¸å表示çå¾åã妿å¾åå å«å¯¹ç解页é¢çæ»ä½ç¨éè³å ³éè¦çä¿¡æ¯ï¼é£ä¹æå¥½å¨ææ¡£ä¸å¯¹å ¶è¿è¡è¯ä¹æè¿°ã
示ä¾
>40 度æ¸å
div {
background-image: conic-gradient(from 40deg, #fff, #000);
}
åç§»ä¸å¿çæ¸å
div {
background: conic-gradient(from 0deg at 0% 25%, blue, green, yellow 180deg);
}
æ¸å饼å¾
æ¬ç¤ºä¾ä½¿ç¨å¤ä½ç½®è²æ ï¼ç¸é»é¢è²å ·æç¸åçè²æ å¼ï¼ä»èåå»ºåºæ¡çº¹ææã
div {
background: conic-gradient(red 36deg, orange 36deg 170deg, yellow 170deg);
border-radius: 50%;
}
æ£çæ ¼
div {
background: conic-gradient(
#fff 0.25turn,
#000 0.25turn 0.5turn,
#fff 0.5turn 0.75turn,
#000 0.75turn
)
top left / 25% 25% repeat;
border: 1px solid;
}
æ´å¤é¥å½¢æ¸åçä¾å
æ´å¤ç¤ºä¾è¯·åè§ä½¿ç¨ CSS æ¸åã
è§è
| Specification |
|---|
| CSS Images Module Level 4 > # conic-gradients > |